Skip to main content
 首页 » 编程设计

javascript之for循环中的ajax发布

2025年12月25日27youxin

我使用 ajax post 循环将当前 i 值发布到其他 php 页面,并从该 php 页面获取相同的 i 值。但是,我的值在发布前增加了 1。这行 console.log(data); 输出 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); 
    } 
  }); 
} 

2.php

<?php  
echo $_POST['id']; 
?> 

请您参考如下方法:

在新函数中使用 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); 
 
        } 
    }) 
}