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

もちろん、dataajax 呼び出しを使用する場合は、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 に答える