Автоматическое обновление с использованием AJAX не работает?
На моем веб-сайте есть функция чата, позволяющая двум пользователям общаться друг с другом, и я использую для этого JavaScript, AJAX и PHP.
В настоящее время он не будет обновлять область чата автоматически, если я не отправлю ответ в чат или не обновлю страницу. Я не могу понять, почему.
Функция JavaScript
function checkReply(threadid) {
// XMLHttpRequest
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("chatwrap").innerHTML = xmlhttp.responseText;
setInterval(checkReply(threadid), 10000);
}
}
xmlhttp.open("GET","inc/chatreply.php?chatid="+ threadid,true);
xmlhttp.send();
}
Обработчик события находится на <div>
responseText будет в конечном итоге:
<div id="chatwrap" onload="checkReply('.$threadid.')"></div>
$threadid
переменная GET, установленная в верхней части страницы:
$threadid = (int)$_GET['chatid'];
1 ответ
ОБНОВИТЬ
Видя, что вы уже были в состоянии PHP, синтаксис был правильным.
Проблема в том, что div
не обладает событием загрузки. Вам нужно будет прикрепить его к тегу body или включить скрипт в заголовок или под div, так как он будет выполняться только после того, как div будет визуализирован.
Вы не включаете переменную PHP правильно. В данный момент вы передаете строку .$threadid.
к checkReply
функция. Вам придется снова перейти в режим PHP, прежде чем использовать этот синтаксис с помощью разделителей. <?php & ?>
,
<div id="chatwrap" onload="checkReply(<?php echo $threadid; ?>)"></div>
Это должно работать лучше.