3

我是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 = 新数组();items.push(itemid); . . . . items.push(itemid); //然后直接发送?xmlhttp.open("POST","submitItem.php?items="items,true); xmlhttp.send();

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

$items = $_GET['items'];
4

1 回答 1

3

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

于 2013-01-15T04:28:15.787 回答