Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать такую фишку на JS?
 
 автор: amigo62   (31.08.2008 в 13:31)   письмо автору
 
 

Все мпривет! Фишка: Есть ссылка, например: <a href="?act=n">Очистить</a>.
Пользователь кликает по ней, но загрузки новой страницы или обновления текущей не происходит, и после выполнения операции на сервере возвращается ответ "Очищено!", который выводится под ссылкой.

  Ответить  
 
 автор: sim5   (31.08.2008 в 13:57)   письмо автору
 
   для: amigo62   (31.08.2008 в 13:31)
 

А что очищать, если обновлять ничего не надо? В любом случае это AJAX.

  Ответить  
 
 автор: amigo62   (31.08.2008 в 14:20)   письмо автору
 
   для: sim5   (31.08.2008 в 13:57)
 

Проще говоря, нужно чтобы отправлялся запрос и происходило действие, а статус его выводился в текущем HTML без обновления страницы

  Ответить  
 
 автор: xx77   (31.08.2008 в 14:27)   письмо автору
 
   для: amigo62   (31.08.2008 в 14:20)
 

можно воспользоваться например библиотекой
http://dklab.ru/lib/JsHttpRequest/

или попробовать примерно так
<?php 
header
('Content-type: text/html; charset=utf-8'); 

$act = ( isset($_GET['act']) && $_GET['act'] == 'n')? 10;
 if (
$act) { 
 
/*
 ..............
 операции
 ...............
 */
print $_SERVER['QUERY_STRING'] . "\n"
  
'Запрос принят и обработан' "\n";  
  exit;  

?>
<html>
<script language="javascript">
var req = null; 

if (window.XMLHttpRequest) {   req = new XMLHttpRequest(); } 
// Mozilla, Safari и т.д.
else if (window.ActiveXObject) {   // Internet Explorer с ActiveX.
 try { req = new ActiveXObject('Msxml2.XMLHTTP') } catch (e) { 
    try { req= new ActiveXObject('Microsoft.XMLHTTP') } catch (e) {} 
 } 

if (!req) { alert("XMLHttpRequest не поддерживается в этом браузере!"); }

//////////

function handleResponse() {  
    try{  
    if((req.readyState == 4) && (req.status == 200)){  
        var response = req.responseText;  
      document.getElementById("answer").innerHTML = response;  
        }  
  }  catch(e){}  
    finally{}  


/////////

function send(txt) { 
// alert(txt);
    req.open("GET", txt);  
    req.onreadystatechange = handleResponse;
    req.send();  
}  
</script>
<body>
<a href="?act=n" onclick="send(this.href); return false;">Очистить</a>
<pre id="answer" style="border:solid 2px red">


</pre>
</body>
</html>

  Ответить  
 
 автор: amigo62   (31.08.2008 в 16:09)   письмо автору
 
   для: xx77   (31.08.2008 в 14:27)
 

Ура, заработало!!! Спасибо большое!

  Ответить  
 
 автор: xx77   (31.08.2008 в 17:26)   письмо автору
 
   для: amigo62   (31.08.2008 в 16:09)
 

,)

  Ответить  
 
 автор: xx77   (31.08.2008 в 23:56)   письмо автору
 
   для: xx77   (31.08.2008 в 17:26)
 

оказалось в FireFox работает только если будет req.send(null);
и никак не получается заставить IE показать переносы строк

<html> 
<script language="javascript"> 
var req = null;  

if (window.XMLHttpRequest) {   req = new XMLHttpRequest(); }  
// Mozilla, Safari и т.д. 
else if (window.ActiveXObject) {   // Internet Explorer с ActiveX. 
 try { req = new ActiveXObject('Msxml2.XMLHTTP') } catch (e) {  
    try { req= new ActiveXObject('Microsoft.XMLHTTP') } catch (e) {}  
 }  
}  
////////
if (!req) { alert("XMLHttpRequest не поддерживается в этом браузере!"); } 
///////
req.onreadystatechange = function() { 
    if((req.readyState == 4) && (req.status == 200)){   
      document.getElementById("answer").innerHTML = req.responseText;   
        }     

///////// 
function send(txt) {  
    req.open("GET", txt, true);   
    req.send(null); 
}   
  
</script> 
<body> 
<a href="?act=n" onclick="send(this.href); return false;">Очистить</a> 
<pre id="answer" style="border:solid 2px red"> 


</pre> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования