ajax post in for loop

Premlatha :

I use ajax post to post current i value to other php page in loop and get the same i value from that php page. But, i value incremented by 1 before posted. This line console.log(data); output 2,..,100,1 .I don't understand why it happen so. The expected output is 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'];
?>
sv12 :

use the ajax call inside a new function then invoke the function into the loop.

Also add async:false in you ajax request. It will send the ajax request synchronously waiting for the previous request to finish and then sending the next request.

Something like

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);

        }
    })
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=24395&siteId=1