[英]Send multidimensional Array via $.post
我有一個多維數組,我通過$ .each填充
$('.gBook').click(function(){
var values = [];
var valueToPush = { }; // or "var valueToPush = new Object();" which is the same
var i = 0;
$('td[data-check="true"]').each(function(){
valueToPush["price"] = $(this).attr("data-price");
valueToPush["id"] = $(this).attr("data-id");
values.push(valueToPush);
i++;
});
var arrayToSend = {values};
$.post( '<?php echo PATH;?>ajax/updateRoom.php',values, function(data){
if(data != "ERROR"){
$('#all-content').html(data).css("overflow-y","auto");
}else{
alert("ERROR");
}
});
});
但是,所有POST變量的結果都是相同的:
Array (
[values] => Array (
[0] => Array ( [price] => 15 [id] => 3380 )
[1] => Array ( [price] => 15 [id] => 3380 )
[2] => Array ( [price] => 15 [id] => 3380 )
)
)
我的錯誤在哪里? 似乎“推”每次都會覆蓋?
這行:
var valueToPush = { };
在您的循環之外。
那么你:
valueToPush
引用它 您只有一個對象,數組中只有多個對象。
每次循環時都需要創建一個新對象。
$('td[data-check="true"]').each(function(){
var valueToPush = {};
valueToPush["price"] = $(this).attr("data-price");
您的每個循環應如下所示:
$('td[data-check="true"]').each(function(){
values.push({
price: $(this).attr("data-price"),
id: $(this).attr("data-id")
});
});
您需要在每次迭代中插入一個新對象。 當前,您正在將對單個對象的引用插入到數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.