我在调用 2 个单独的 ajax 函数时遇到问题。我有一个循环遍历页面上的所有复选框元素,然后如果它们被选中,它会调用一个 ajax 函数来移动我的数据库中的一些数据。然后在 for 循环之外,我调用另一个 ajax 函数,该函数进入我的数据库并将结果拉回我的 ID 元素。我不得不以不同的方式命名我的 httprequests,这样它们就不会打架,这两个功能都可以工作,但是我循环之外的那个功能很快,并且不会提取新的/更改的数据。如果我在这个外部循环函数之前发出警报,它就会起作用。我也尝试过使用 setTimeout(myFunctio(), 3000) 没有运气。
这是我的代码。
function ungroupContact(){
group = document.getElementsByName("moveGroup")[0].value;
for(i=0;i<=25;i++){
if(document.getElementById('checkBox'+i)){
if(document.getElementById('checkBox'+i).checked){
var email = document.getElementById('checkBox'+i).value;
moveContact(email, group);
}
}
}
//alert("hello");
//setTimeout(alert("hello"),12000);
groupList1(group);
}
这是我第一次发帖,对不起,如果这是noobish,目前正在攻读计算机科学学位。
感谢您的任何建议和/或帮助
抱歉,我应该知道要设置 ajax 函数。我使用了 w3schools 的布局。
function moveContact(email, group){
if (email=="" || group=="")
{
document.getElementById("sidebar2").innerHTML="Something wrong was entered";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp1=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp1.onreadystatechange=function()
{
if (xmlhttp1.readyState==1 || xmlhttp1.readyState==2 || xmlhttp1.readyState==3)
{
document.getElementById("sidebar2").innerHTML="<img src='images/loading.gif' alt='Loading'> ";
}
if (xmlhttp1.readyState==4 && xmlhttp1.status==200)
{
document.getElementById("sidebar2").innerHTML=xmlhttp1.responseText;
}
}
xmlhttp1.open("GET","core/moveContact.php?group="+group+"&email="+email,true);
xmlhttp1.send();
return;
}