我在循环中遇到了ajax的问题。 我发现循环变量“i”没有增加。 假设array1中有3个项目,脚本将提醒4,4,4 但不像我预期的那样1,2,3。 有人能给我一个暗示吗? 非常感谢。
var i;
for(i=1;i<=array1.length;i++){
tmp=array1[i-1];
$.ajax
({
type: "POST",
url: "ajax_feedback.php",
data: {id : tmp.id},
success: function(msg)
{
alert(i);
}
});
}
答案 0 :(得分:0)
尝试:
var len = array1.length;
show(0);
function show(i){
var tmp=array1[i-1];
$.ajax({
type: "POST",
url: "ajax_feedback.php",
data: {id : tmp.id},
error:function(){
if(i < len){
show(i+1);
}
},
success: function(msg){
alert(i);
if(i < len){
show(i+1);
}
}
});
}
答案 1 :(得分:0)
所以这个问题的解决方案是:
var i;
for(i=1;i<=array1.length;i++){
tmp=array1[i-1];
ajaxCall(i);
}
function ajaxCall(i){
$.ajax
({
type: "POST",
url: "ajax_feedback.php",
data: {id : tmp.id},
success: function(msg)
{
alert(i);
}
});
}
每当你在循环中进行ajax调用时。永远不要尝试直接调用它。这是因为ajax调用是异步的,直到成功代码从服务器返回时,i值增加,因此,它显示为4 ,4,4为警报输出。