agregar múltiples productos al carrito de compras ingresando múltiples ID de productos en un cuadro de texto

Estoy desarrollando una opción en Magento donde el cliente puede ingresar múltiples ID de productos en un cuadro de texto y agregarlos al carrito de compras. Pude hacerlo solo para una ID de producto donde se ingresa en un cuadro de entrada usando el siguiente jquery,

$(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 obtiene el valor del cuadro de entrada.

En un cuadro de entrada, tomo una ID de producto, por lo que no hay problema en obtener el valor y pasarlo a la página de agregar producto usando jquery.post(). Pero si ingreso varios ID de producto separados por comas en un cuadro de texto, ¿cómo buscaré cada ID de producto y lo enviaré para agregar la página del producto para su actualización? ¿Hay alguna forma mejor de hacerlo que no sea usar el método jquery.post()?

preguntado el 22 de mayo de 12 a las 12:05

2 Respuestas

Puede dividir sus ID por un separador e iterar sobre la matriz resultante agregando los artículos a la tarjeta de compras. Algo como:

$(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);
              });
            }
        });
    });

Tendrá que desinfectar los valores de su cuadro de texto antes de hacerlo.

contestado el 22 de mayo de 12 a las 13:05

 $(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);
            }

debe devolver una matriz de ID de productos para publicar la acción, entonces solo se puede lograr.

contestado el 22 de mayo de 12 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.