使用AJAX自动刷新无法正常工作?

时间:2014-04-22 22:18:18

标签: javascript php ajax partial-page-refresh

我的网站上有一个聊天功能,供两个用户互相聊天,我正在使用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 个答案:

答案 0 :(得分:0)

<强>更新

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

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


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

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

这应该会更好。