javascript - 通过 $.post 发送多维数组

标签 javascript jquery 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 )
  ) 
) 

我的错误在哪里?似乎“push”每次都会被覆盖?

最佳答案

这一行:

var valueToPush = { };

在你的循环之外。

所以你:

  1. 创建一个对象
  2. 将对其的引用放入valueToPush
  3. 在其中输入值
  4. 将其引用复制到数组中
  5. 转到3

您只有一个对象,只是在数组中拥有对它的多个引用。

每次循环时都需要创建一个新对象。

$('td[data-check="true"]').each(function(){
    var valueToPush = {};
    valueToPush["price"] = $(this).attr("data-price");

关于javascript - 通过 $.post 发送多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699904/

相关文章:

Javascript 字符串/整数比较

javascript - 难以创建 Jquery 循环以重复更改背景颜色和动画元素

java - 使用 JBoss 将消息发布到远程 JMS 队列

json - Jersey 客户端 POST 结果 - header full : java. lang.RuntimeException: Header>6144

javascript - 当窗口大小小于 x 时使脚本停止

ios - 使用 AFNetworking 2 发布嵌套的 NSDictionary

javascript - 我应该如何循环依赖于前一个循环值的异步函数?

javascript - 将 c# 日期解析为 javascript 日期如何与 ')' 一起使用?

javascript - 在 Google Line Chart API 中使用字符串作为标签

jquery - 仅当包装器 div 具有特定类时才向下滚动到页面加载的元素