gpt4 book ai didi

php - for循环中的JQuery ajax函数表现得很奇怪

转载 作者:行者123 更新时间:2023-11-30 13:23:53 25 4
gpt4 key购买 nike

"get_ing_id"获取一个字符串,根据字符串查找数据库,获取相关的id数据。在此示例中,它需要检索“65”和“66”,在执行代码时它会成功执行这些操作。

var ings = [];
var ingsSearch = [];
var i = 2;
var k = 0;
ings[0] = 'apple';
ings[1] = 'banana';

function next(){
for(j=0;j<i;j++){
if(ings[j] != 0){
$.ajax({
url: burl+'index.php/ajax/get_ing_id',
type: 'POST',
data: 'name='+ings[j],
success: function(data){
ingsSearch[k] = data;
alert(ingsSearch[k]);
k++;
alert(k);
}
});
}

}
alert(ingsSearch[0]);
alert(ingsSearch[1]);

}

执行代码时,我会按顺序收到警告框:

  • 66
  • 1
  • 65
  • 2
  • 未定义
  • 未定义

应该是这样的

  • 66
  • 1
  • 65
  • 2
  • 66
  • 65

那么我哪里做错了呢?我对javascript不是很有经验,如果我能得到任何帮助,我将不胜感激。感谢您的宝贵时间!

最佳答案

尝试将 ajax 对象的 async 属性设置为 false。默认为 true 因此不能保证调用将按顺序完成:

$.ajax({
async: false,
// ..
});

请注意 ShankarSangoli 的评论;编写此代码的理想方式不是基于循环,而是从 AJAX 回调函数前进到下一个元素。

关于php - for循环中的JQuery ajax函数表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com