我正在尝试为一个宠物启动项目教自己一些PHP和Ajax - 没有招聘一个真正的技术人员。 :-) 无论如何,这是背景。 我在HTML表中选择了一个数据,当提交时将其调用为更新函数。 我循环遍历表以选择所选记录(单选按钮)并将它们分配给$ row并循环遍历每个元素以调用更新php文件并发送记录以添加到数据库中。 当我有javascript警告语句时,所有记录都会添加到数据库中。但是如果我注释掉警报,那么只会添加最后一条记录。 我尝试在循环中添加3秒,5秒延迟仍无用。
这里是代码片段 - 一些变量在此循环之外设置,并且值没有问题。
$row.each(function() {
var $rowcells = $(this).find('td'); //entire row split into columns
var name = $rowcells.eq(0).text(); //name of the person selected
relationtype = $rowcells.eq(1).children().val(); // relationship with the person
//alert("I was here with "+name); // all records get added when this alert is uncommented
xmlhttp.open("POST","profileupdate.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("type="+type+"&userid="+userid+"&userrelid="+userrelid+"&relationtype="+relationtype+"&timeline="+timeidtext);
});
我知道一次添加一个这样的数据库性能会很昂贵。无论如何我应该改变这种逻辑。但是,在此期间,我们很想知道这里发生了什么.n
答案 0 :(得分:1)
您正在异步地向服务器发送HTTP请求(xmlhttp.open的' true'第二个参数)。这意味着该行中的下一个项目将覆盖前一个项目。
您可以尝试:
在第三种情况下,您无法使用'每个'迭代器。
更多信息:http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp