XMLHttpRequest仅在第一次调用时工作

时间:2015-12-14 09:50:44

标签: javascript ajax

我在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都与第一次相同。

0 个答案:

没有答案