0

我正在尝试将多个链接从数组传递到 AJAX。我从以下位置获取链接:

var additionalProducts = new Array;

    $(".chk").click(function() {
        additionalProducts=[];
        $('.chk:checked').each(function() {
            additionalProducts.push($(this).attr('data-carturl',$("a[data-slot='"+newslot2[i]+"']").attr('href')));
        });
        var ilosc = additionalProducts.length;

        console.log(additionalProducts);
        console.log(ilosc);
    });

我得到了正确的链接,因为我可以使用控制台日志显示它。我可以在提交表单之前使用 AJAX 提交这些链接吗?

//////////// 更新

那是我的提交功能:

$('.submitOrder').click(function() {
    e.preventDefault();
    additionalProducts=[];
    $('.chk:checked').each(function() {

        additionalProducts.push($(this).attr('data-carturl',$("a[data-slot='"+newslot2[i]+"']").attr('href')));
    });

        for(var i = 0; i < additionalProducts.length; i++)
            {
                var page = additionalProducts[i];
                $.ajax({
                    url: page,
                    beforeSend: function() {
                        console.log(page)
                       },
                    success: function(data) {
                        console.log(page)
                    }

                });

            }
        window.location = window.location.protocol + '//' + window.location.hostname + '/my/cart';

});

我可以进入我的购物车,但仍然没有产品。console.log(page) 对我来说很好用

$("#submitOrder").submit(function(e){
        e.preventDefault();     
        var radio1 = $("input:radio[name=radio1]:checked").attr("data-carturl");

        additionalProducts=[];
        $('.chk:checked').each(function() {

            additionalProducts.push($(this).attr('data-carturl',$("a[data-slot='"+newslot2[i]+"']").attr('href')));
        });

             $.ajax({
                    type: 'GET',
                    url: radio1,
                    data: { theArray: JSON.stringify(additionalProducts ) }

              }),

            $(this).submit();


window.location = window.location.protocol + '//' + window.location.hostname + '/my/cart';          
}); 
4

1 回答 1

0

当然,data在使用 ajax 调用时将其作为 JSON 字符串传递:

$.ajax({
    url: 'yourwebservice.php'
    data: { theArray: JSON.stringify(additionalProducts ) }
});

在表单的提交事件中,阻止提交,直到 ajax 调用完成:

e.preventDefault();

并在 ajax 调用完成后提交:

$(this).submit();

如果您使用的是 PHP,则可以使用$theArray = $_GET['theArray'];. 如果您使用的是 ASP.NET:string json = HttpContext.Current.Request.Querystring['theArray'];

于 2013-03-04T14:20:52.580 回答