2

私はMagentoで、顧客がテキストボックスに複数の製品IDを入力し、それらをショッピングカートに追加できるオプションを開発しています。次のjqueryを使用して、入力ボックスに入力された1つの製品IDに対してのみ実行できました。

$(document).ready(function(){
        $("#submit").click(function(){
            var id = $("#nam").val();
            $.post("....../checkout/cart/add", { product:id },
            function(data) {
                alert("The Product is added to your shopping cart.");
                window.location.reload(true);
            });
        });
    });

var idは、入力ボックスの値をフェッチします。

入力ボックスで1つの商品IDを取得しているので、値を取得してjquery.post()を使用して商品の追加ページに渡すのに問題はありません。しかし、テキストボックスにコンマで区切られた複数の製品IDを入力した場合、各製品IDを取得して、更新用の製品ページを追加するために送信するにはどうすればよいですか?jquery.post()メソッドを使用する以外にそれを行うためのより良い方法はありますか?

4

2 に答える 2

1

IDを区切り文字で分割し、結果の配列を反復処理して、ショッピングカードにアイテムを追加できます。何かのようなもの:

$(document).ready(function(){
        $("#submit").click(function(){
            var ids = $("#nam").val().split(' '); // SPACE seperated Ids
            for(i = 0; i < ids.length; i++){
              var id = ids[i];
              $.post("....../checkout/cart/add", { product:id },
              function(data) {
                //alert("The Product is added to your shopping cart.");
                //window.location.reload(true);
              });
            }
        });
    });

そうする前に、テキストボックスの値をサニタイズする必要があります。

于 2012-05-22T12:03:54.027 に答える
0
 $(document).ready(function () {
                $("#submit").click(function () {
                    var productIds = [];

                    $.each($("#nam").val().split(','), function (i, value) {
                        if (value.length > 0) {
                            productIds.push(value);
                        }
                    });

                    $.post("....../checkout/cart/add", { productIds: productIds },
                                                          function (data) {
                                                              alert('The' + (productIds.length == 1 ? 'Product' : 'Products') + ' is added to your shopping cart.');
                                                              window.location.reload(true);
                                                          });
                });
            });

            public ActionResult add(int[] productIds)
            {
                return Json(true, JsonRequestBehavior.AllowGet);
            }

アクションを投稿するには、製品IDの配列を返す必要があります。そうすれば、それだけを実現できます。

于 2012-05-22T12:36:17.960 に答える