.ajax和params以及如何让它们看起来像这样?

时间:2012-11-04 07:11:14

标签: javascript jquery ajax

我尝试发布上一个问题,但我认为这是令人费解的。

基本上,我被告知“你可以通过这样的方式来获取数据吗?” - 请记住,此数据不是来自表单,而是来自客户端通过搜索驱动的数据。

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

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

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

但是对于我的生活,我在实际的.ajax帖子中看不到任何好看的东西。当我将console.log数据输出时,它看起来不错。它是一系列哈希。等...看起来很好。但是,当我查看请求的参数时,以下是实际发送的内容。以下是我实际发送的内容。它做了一些奇怪的合并,看起来像。

{
  '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中的各种数据设置,没有运气。我对如何格式化我发送的模拟我首先发布的数据感到茫然。

有什么想法吗?

1 个答案:

答案 0 :(得分: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"