使用AJAX的自动刷新不起作用


Automatic refresh using AJAX not working?

我的网站上有一个聊天功能,可以让两个用户互相聊天,我使用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'];

更新

看到您已经处于PHP状态,语法是正确的。

问题是div没有一个onload事件。您必须将它附加到body标记,或者在div的头部或下方包含一个脚本,因为它只会在div渲染后执行


您没有正确地包含PHP变量。此时,您正在将字符串.$threadid.传递给checkReply函数。在使用分隔符<?php & ?>使用此语法之前,您必须再次进入PHP模式。

<div id="chatwrap" onload="checkReply(<?php echo $threadid; ?>)"></div>

这应该效果更好。