0

これがどこかで答えられていないことを願っています:)

次のフォーム入力フィールドを使用して、顧客がバスケット内のアイテムの数量を更新できるようにしています。

<input type="text" name="item_qty[<?php echo $product['product_id']; ?>]" value="<?php echo $product['product_qty']; ?>">

したがって、バスケット内の各アイテムには上記の入力フィールドがあり、すべての製品の数量を一度に更新する送信ボタンが 1 つあります。

私の問題は、jquery で必要な配列を作成して、name 要素の配列を使用して ajax 経由で送信する方法がわからないことです (フォームが正常に機能することを確認したいので、可能であればこのように保ちたいと思います)。 jquery を初期化できない理由がある場合は、PHP ファイルに送信します)。

おそらく名前はバスケット配列のキーであるべきだと思いましたが、よくわかりません。誰でもこれを行うための最良の方法をアドバイスできますか?入力フィールドをそのままにしておく場合は、必要なデータを取得してjqueryで配列を作成する方法を教えてください.

4

3 に答える 3

0

var obj = {};

`$('input').each(function(index, value){ obj[this.name] = this.value;

});`

于 2013-06-20T10:02:43.003 に答える
0

受け入れられた回答をフォークし、$.map() を使用するように書き直しました。これは、$.each() よりも適切な場合があります。$.map() は、この種のアプリケーションを対象としています: DOM クエリの結果から配列を構築します:

var results = $('[name^=item]').map(function() {
    var $this = $(this),
        jsObject = {};

    jsObject[$this.attr('name')] = $this.val();
    return jsObject;
}).get();

これがフィドルです。

$.map のドキュメントは次のとおりです

于 2014-03-05T17:32:00.763 に答える