2017-08-03 43 views
0

在一个php文件中,我返回一个表格的一些记录,如格子堆栈(下面的函数中的变量divid),每个记录对应一个由id索引的记录(tdid在下面的函数中)。数据库在SQLserver中。在更新记录后返回更新的innerHTML

要编辑一个特定的记录,我调用一个orderedit.php文件的内容,该文件包含一个表单(下面的函数中的变量formid)。

然后用下面的函数执行更新并将div的innerHTML替换为orderselect.php的内容,该内容返回选择此特定记录的内容。

它执行得很好,除了有些时候select会返回更新的记录,但有些时候它会像更新之前那样返回更新后的记录。 (它已更新,已勾选)

如何确保orderselect.php作为innerHTML在记录更新后返回?

function kataxorisi(tdid){ 
    var formid = 'form'+tdid; 
    document.getElementById(formid).submit(); 
    // Here some intervention needed 
    var divid = 'div'+tdid; 
    cdiv = document.getElementById(divid); 
    cdiv.innerHTML="<img src='loaderIcon.gif'>"; 
    if(XMLHttpRequest) var x = new XMLHttpRequest(); 
    else var x = new ActiveXObject("Microsoft.XMLHTTP"); 
    x.open("GET", "orderselect.php?gid="+tdid, true); 
    x.send(); 
    x.onreadystatechange = function(){ 
     if(x.readyState == 4){ 
      if(x.status == 200) cdiv.innerHTML = x.responseText; 
      else cdiv.innerHTML = "Error loading document"; 
     } 
    }  
} 
+0

也许您的* .php文件存在问题。请让我们看看。任何为什么不使用jQuery的[$ .get(...)](https://api.jquery.com/jquery.get/)? – Spectarion

回答

0

在执行select查询之前,我在orderselect.php中插入了一个小延迟。

usleep(50000); 

这是独立的,并不能确保表单提交和记录更新发生在选择之前,但以一种实际的方式发挥作用。
仍然打开更好的想法。