带有FOR循环JS的AJAX

时间:2015-10-28 14:45:58

标签: javascript php ajax loops

我在使用AJAX和FOR循环时遇到问题。在PHP文件中有一些如果数字(1-9)的负责人返回带有价格的回声。

f.ex。

1 -> echo "15.20";
2 -> echo "11.10";
3 -> echo "13.65";
4 -> echo "14.30";

JS脚本:

for(i=1; i<10; i++)
{
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementsByClassName("courierprice")[i-1].innerHTML = xmlhttp.responseText;
        }
        else
        {
            document.getElementsByClassName("courierprice")[i-1].innerHTML = "shit";
        }
    }
    xmlhttp.open("GET", "gethint.php?q=" + i , true);
    xmlhttp.send();
}

当没有循环,只有var i = 1时,它会正确返回(15.20),但是如果我想要做几次,我只是进入所有类“shit”。

如果您有任何建议,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:2)

你应该将整个循环内容包装在一个函数中并将i传递给那里。

for(i=1; i<10; i++) {
        (function (i) {

            ...your async code...

        })(i);
}