在Wordpress中通过Ajax传递数组值

时间:2019-06-11 12:02:14

标签: ajax wordpress

我已经完成了jQuery.ajax的ajax调用,并尝试过

        jQuery.ajax({
            url: wpgiftstoreAjax.ajaxurl, 
            type: 'POST',
            dataType: 'JSON',
            data: {
                action: 'addgiftTocart',
                giftData: gdata,
            },
            success: function( data ) {
                console.log(data);
            }
        })

我由此获得了“ gdata”

var gdata = JSON.stringify(GiftData);

但是在这里我无法获得这样的字符串数据。我有一个空白数组。在此行之前,我已经尝试过使用此代码,并获得了包含数据的数组。

console.log(GiftData);

所以我不明白问题出在哪里。请为我解决这个问题,并先谢谢您。

我尝试过的总代码

    GiftData = [];
    GiftData['boxProduct'] = [];
    GiftData['boxName'] = jQuery('#giftbox-data .box-data').text();
    jQuery('#giftbox-data .prod-data .product').each( function(i) {
        GiftData["boxProduct"][i] = [];
        GiftData['boxProduct'][i]['id'] = jQuery(this).find('.prod-name').attr('prodid');
        GiftData['boxProduct'][i]['num'] = jQuery(this).find('.prod-num').text();
    })
    GiftData['boxSenderInfo'] = jQuery('#giftbox-data .sender-info .gift-sender').text();

1 个答案:

答案 0 :(得分:0)

我在上面的代码中唯一遇到的问题是使用方括号“ [”代替“ {”。

应该是这样

    GiftData = {};
    GiftProdData = {};
    GiftData['boxProductData'] = {};
    GiftData['boxName'] = jQuery('#giftbox-data .box-data').text();
    jQuery('#giftbox-data .prod-data .product').each( function(i) {
        GiftData["boxProductData"][i] = {};
        GiftData['boxProductData'][i]['id'] = jQuery(this).find('.prod-name').attr('prodid');
        GiftData['boxProductData'][i]['num'] = jQuery(this).find('.prod-num').text();
    })

谢谢您的合作。