Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax post-in for循环_Javascript_Ajax - Fatal编程技术网

Javascript ajax post-in for循环

Javascript ajax post-in for循环,javascript,ajax,Javascript,Ajax,我使用ajaxpost将当前I值发布到循环中的其他php页面,并从该php页面获得相同的I值。但是,我的值在发布之前增加了1。此行console.log(数据)输出2,…,100,1。我不明白为什么会这样。预期输出为1,…,100 for (i = 1; i <= 100; i++) { $.ajax({ type: 'POST', url: '2.php', data: { 'id': i } , success: function(data

我使用ajaxpost将当前I值发布到循环中的其他php页面,并从该php页面获得相同的I值。但是,我的值在发布之前增加了1。此行
console.log(数据)输出
2,…,100,1
。我不明白为什么会这样。预期输出为
1,…,100

for (i = 1; i <= 100; i++) {
  $.ajax({
    type: 'POST',
    url: '2.php',   
    data: { 'id': i }   ,
    success: function(data) {                                                                           
    //console.log(data);
    }
  });
}

for(i=1;i在新函数中使用ajax调用,然后将函数调用到循环中

在ajax请求中添加async:false。它将同步发送ajax请求,等待前一个请求完成,然后发送下一个请求

差不多

function func() {
    for (let i = 1; i <= 100; i++) {
        makeRequest(i);
    }
}

function makeRequest(i) {
    $.ajax({
        type: 'POST',
        url: '2.php',
        data: {
            'id': i
        },
        async:false,
        success: function(data) {
            //console.log(data);

        }
    })
}
函数func(){
对于(让i=1;i试试这个


for(i=1;iAdd
exit();
就在您的
echo$\u POST['id'之后)
为了确保输出是流畅的,因为$.ajax是异步的。@FrançoisHuppé即使$.ajax是异步的,它至少会按顺序打印测试值,有时,并非所有时候响应顺序都是一样的吗?是2,3,4,5…98,99100,1吗?@FrançoisHuppé,它每次都是按这个顺序打印的。set
async:false
able以正确的顺序打印输出。@Kaustubhkhhare,我试过了。它没有输出任何内容value@Premlatha我已经解决了这个问题。请看一看。@KaustubhKhare,它输出的值不符合顺序。Set
async:false
solve order issue。但是加载速度较慢。@Premlatha是的。输出将不符合顺序。因为这是异步调用。@Premlatha
 async:false将是同步调用。它将等待下一次迭代,直到没有收到上一个响应。这种方法将解决订单问题,但由于同步调用,它将非常缓慢。
function func() {
    for (let i = 1; i <= 100; i++) {
        makeRequest(i);
    }
}

function makeRequest(i) {
    $.ajax({
        type: 'POST',
        url: '2.php',
        data: {
            'id': i
        },
        async:false,
        success: function(data) {
            //console.log(data);

        }
    })
}
for(i=1;i<=100; i++) {
  (function(index){
      $.ajax({
            type    :'POST',
            url     :'2.php',   
            data    :{'id':index}   ,
            success :function(data)
            {                                                                          
               //console.log(data);
            }
     });

    })(i);
}