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() を配置すると、毎回ウィンドウがポップアップし、すべてのアイテムが挿入されますが、ウィンドウをポップアップし続けるのは面倒です。他の解決策はありますか?

  • または、最初の返信が言ったように、項目のリストを格納する配列を使用して 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'];
4

1 に答える 1

3

for ループを使用してアイテムの配列を生成し (itemid反復ごとに異なる を配列にプッシュします)、すべてのアイテムをデータベースに挿入する AJAX 呼び出しを 1 回だけ行います。この方法により、サイトが最適化され、帯域幅が節約されます。

于 2013-01-15T04:28:15.787 に答える