我有一个列出产品的页面 - 每个产品都有一个添加到购物车按钮。使用按钮中的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);
}
);
});
});
答案 0 :(得分:1)
问题是每次点击sharey=True
时都会创建一个新数组。只需在点击处理程序之外声明您的数组,它就可以正常工作。
".addtocart button"
答案 1 :(得分:0)
将offerIdArray移到函数外部。现在它是一个局部变量。所以每次调用该函数时都要重新创建它。你需要一个全局变量。我希望有所帮助。