我在XMLHttpRequest对象上遇到了问题。主要是,我的代码应该检查每次点击"刷新"按钮,如果有任何记录 SQL表遵守一些规则,并更新它们。我的代码看起来有些:
//index.php
//Refresh button
<input type = 'button' value = 'Refresh' onmouseup="refreshFunction(document.getElementById('hiddenID').value);">
//Somewere in page
<?php
echo "<input type = 'hidden' value = '$id' id = 'hiddenID'>";
?>
//XMLHttpRequest function declared in the same page, at the bottom
function refreshFunction(a)
{
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("someDiv").innerHTML += xmlhttp.responseText;
}
};
xmlhttp.open("GET","queryPage.php?id="+a,true);
xmlhttp.send(null);
}
//Now the query page queryPage.php
$id = $_GET['id'];
$sel = mysql_query("SELECT * FROM myTable WHERE columnOne IS NULL AND owner = '$id' AND columnTwo IS NULL");
while($message = mysql_fetch_array($sel))
{
$idFound = $message['nrcrt'];
$update = mysql_query("UPDATE myTable SET columnTwo = '1' WHERE nrcrt = '$idFound'");
echo "New record found<hr>";
}
现在,究竟发生了什么?当我第一次点击&#34;刷新&#34;按钮,查询查找记录(让我们说有三个),正在更新 他们并且正在显示三条消息:
New record found
New record found
New record found
第二次点击时,myTable已经更新,其中columnTwo设置为&#39; 1&#39;但结果是一样的。这三条消息再次出现了 并且每次点击someDiv都会得到其他三条消息,即使没有更多的记录来尊重查询。现在,如果我修改一个值 columnTwo,查询似乎找不到它并继续添加第一次点击时找到的三条初始消息。直到我重启我的浏览器 (IE 11),无论我如何修改myTable,结果都与第一次点击的结果相同。似乎xmlhttp对象不存在 销毁,每次点击“刷新”按钮,xmlhttp都与第一次相同。