|
|
|
| Все мпривет! Фишка: Есть ссылка, например: <a href="?act=n">Очистить</a>.
Пользователь кликает по ней, но загрузки новой страницы или обновления текущей не происходит, и после выполнения операции на сервере возвращается ответ "Очищено!", который выводится под ссылкой. | |
|
|
|
|
|
|
|
для: amigo62
(31.08.2008 в 13:31)
| | А что очищать, если обновлять ничего не надо? В любом случае это AJAX. | |
|
|
|
|
|
|
|
для: sim5
(31.08.2008 в 13:57)
| | Проще говоря, нужно чтобы отправлялся запрос и происходило действие, а статус его выводился в текущем HTML без обновления страницы | |
|
|
|
|
|
|
|
для: 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')? 1: 0;
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>
|
| |
|
|
|
|
|
|
|
для: xx77
(31.08.2008 в 14:27)
| | Ура, заработало!!! Спасибо большое! | |
|
|
|
|
|
|
|
для: amigo62
(31.08.2008 в 16:09)
| | ,) | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|