我的网站上有一个聊天功能,供两个用户互相聊天,我正在使用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'];
答案 0 :(得分:0)
<强>更新强>
看到你已经处于PHP状态,语法是正确的。
div
没有onload事件。你必须将它附加到body标签,或者在div的头部或下面包含一个脚本,因为它只会在div被渲染后执行。您没有正确包含PHP变量。您将字符串.$threadid.
传递给checkReply
函数。在使用分隔符<?php & ?>
使用此语法之前,您必须再次进入PHP模式。
<div id="chatwrap" onload="checkReply(<?php echo $threadid; ?>)"></div>
这应该会更好。