如何发送多个ajax请求?

时间:2013-01-15 04:25:20

标签: php javascript ajax

我是ajax的新手。我有一个函数,使用php页面将项目列表插入到sql中,但它只插入最后一项。请看下面的代码:

function submitItems() {
    ...
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        if (xmlhttp.responseText != "Item Sold")
            alert(xmlhttp.responseText);
        }
    }
    for (i=0;i<rows.length;i++) {//a loop to send multiple requests
        xmlhttp.open("POST","submitItem.php?itemid="+itemid,true);
        xmlhttp.send();
    }
}

循环将请求发送到执行插入的php页面,但只处理最后一个请求。如果我在循环中放置一个alert(),它每次弹出一个窗口,并且每个项目都被插入,但是,保持弹出窗口是很烦人的。还有其他解决方案吗?

  • 或者,正如第一个回复所说,我只发送一个请求,其中包含一个存储列表的数组。但我不知道如何将数组作为参数传递。我可以这样做吗?

    var items = new array(); items.push(商品ID); 。 。 。 。 items.push(商品ID); //然后发送它? xmlhttp.open( “POST”, “?submitItem.php项=” 项,TRUE); xmlhttp.send();

然后在php文件中,我应该这样做吗?

$items = $_GET['items'];

1 个答案:

答案 0 :(得分:3)

使用for循环生成一个项目数组(在每次迭代时将不同的itemid推入数组中),然后只进行一次AJAX调用,在其中将所有项目插入到数据库中。这种方式还可以优化您的网站并节省带宽。