私は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() を配置すると、毎回ウィンドウがポップアップし、すべてのアイテムが挿入されますが、ウィンドウをポップアップし続けるのは面倒です。他の解決策はありますか?
または、最初の返信が言ったように、項目のリストを格納する配列を使用して 1 つの要求のみを送信します。しかし、配列をパラメーターとして渡す方法がわかりません。これはできますか?
var items = new array(); items.push(itemid); . . . . items.push(itemid); //その後、送信しますか? xmlhttp.open("POST","submitItem.php?items="items,true); xmlhttp.send();
次に、php ファイルで、これを行いますか?
$items = $_GET['items'];