0

我尝试发布以前的问题,但我相信它很复杂。

基本上,有人告诉我“你能让数据像这样通过吗?” - 请记住,此数据不是来自表单,而是来自通过客户端搜索驱动的数据。

这就是假设要发送到服务器的内容。因此,如果您转储了 error_log,它会看起来像这样。这都是动态的,所以下面的对象将是这种格式,但数据会改变。

{
  "matchedItems" :
  [
    { "itemID1" :
      { "Cost" : "12",
        "Size" : "small",
        "Colors" : [ "blue", "red" ]
      }
    },
    { "itemdID2" :
      { "Cost" : "33",
        "Size" : "large",
        "Colors" : [ "yellow" ]
      }
    }
  ]
}

所以,我通过页面上的一些东西运行并捆绑数据并返回数据集,因此数组中的哈希值。

但是对于我的生活,我无法在实际的 .ajax 帖子中得到任何好看的东西。当我控制台记录数据时,它看起来不错。它是一个哈希数组。等等...看起来不错。但是当我查看请求的参数时,以下是实际发送的内容。所以下面是我实际发送的内容。它做了一些奇怪的合并,看起来像这样。

{
  'matchedItems[0][itemid1][Color]' => 'Blue',
  'matchedItems[0][itemid1][Size]' => 'small',
  'matchedItems[0][itemid1][Cost]' => '33.90',
  'matchedItems[1][itemid2][Color][]' => ['Silver'],
  'matchedItems[1][itemid2][Size]' => 'small',
  'matchedItems[1][itemid2][Cost]' => '44',
  'matchedItems[2][itemid3][Color][]' => ['blue','Red'],
  'matchedItems[2][itemid3][Size]' => 'large',
  'matchedItems[2][itemid3][Cost]' => '23'
};

我试图 $.params 数据,没有运气。我在dataType中尝试了各种数据设置,没有运气。我不知道如何格式化我发送的模仿我首先发布的数据的格式。

有任何想法吗?

4

1 回答 1

1

你应该json_encode()你的 PHP 输出

例子:

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

输出:

{"a":1,"b":2,"c":3,"d":4,"e":5}

您可以使用 jQuery 解码从 ajax 回复中返回的 json:

var json_reply = jQuery.parseJSON('{"a":1,"b":2,"c":3,"d":4,"e":5}');
alert( json_reply.a ); // alerts "1"
于 2012-11-04T07:15:21.223 回答