通过$.post发送多维数组
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
中引用它 - 在其中输入值
- 将对它的引用复制到数组中
- 转到3
只有一个对象,数组中只有多个对它的引用。
每次循环时都需要创建一个新对象。
$('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")
});
});
您需要在每次迭代中插入一个新对象。当前,您正在将对单个对象的引用插入到数组中。
相关文章:
- 使用application/x-www-form-urlencoded使用node.js在post请求中发送数组
- 使用 $.post 发送数组
- Javascript POST数据进入GET PHP数组
- Ajax post后数组在服务器端返回为空
- 通过$.post发送多维数组
- 如何通过POST类型以html形式发送PHP数组
- AJAX中的POST数组
- 如何使用javascript将所选项目放入php post数组中
- node.js请求POST数组“;第一个参数必须是字符串或缓冲区;
- 使用$.post()将PHP数组发送到jQuery,然后循环使用这些值
- 将 php 数组发布到 javascript/jquery 中使用 .post
- 使用从 jQuery $.post 返回的数组
- 如何将带有普通对象集合的 Js 数组对象传递给 ajax post'html' 数据类型中的控制器
- 如何在jQuery中通过.post发送数组
- 通过 POST 从 AngularJS 发送“关联数组”
- jQuery - 在 post request 中传递数组
- ajax post 调用导致将数组发送到弹簧休息控制器时出现 400(错误请求)
- 用Ajax将数组POST到PHP
- 将json对象数组POST到IHttpHandler
- 如何使用 Java 模拟 $.ajax 数组 POST 请求