如何使用ajax将数据推送到数组

时间:2015-08-01 09:21:04

标签: jquery arrays ajax post

我有一个列出产品的页面 - 每个产品都有一个添加到购物车按钮。使用按钮中的data属性,我需要将offerId字符串推送到现有数组中。将多个产品添加到购物车后的预期结果是返回包含所有offerIds的数组。目前,如果我print_r是offerIdArray,它只显示最新按钮的offerId。

思想?

$(document).ready(function () {
    $(".addtocart button").click(function () {
        var offerIdArray = [];
        var offerId = $(this).attr("data-offerId");
        $.post("controller/create-cart.php", {
            offerIdArray: offerIdArray.push(offerId)
        },
        function (data) {
            $('body').append(data);
        });
    });
});
编辑:以下是我的工作代码 - 感谢@brroshan。在通过post发送数组之前,我还必须将offerId推送到offerIdArray。

$(document).ready(function () { 
    offerIdArray = [];                                
    $(".addtocart button").click(function () {                    
        var offerId = $(this).attr("data-offerId"); 
        offerIdArray.push(offerId);                    
        $.post("controller/create-cart.php",
            {                                
                offerIdArray: offerIdArray
            },
            function (data) {
                $('body').append(data);
            }
        );
    });
});

2 个答案:

答案 0 :(得分:1)

问题是每次点击sharey=True时都会创建一个新数组。只需在点击处理程序之外声明您的数组,它就可以正常工作。

".addtocart button"

答案 1 :(得分:0)

将offerIdArray移到函数外部。现在它是一个局部变量。所以每次调用该函数时都要重新创建它。你需要一个全局变量。我希望有所帮助。