繁体   English   中英

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

[英].ajax and params and how to get them to look like this?

我尝试发布先前的问题,但我认为这很令人困惑。

基本上,我被告知“您能使数据像这样通过吗?” -请记住,这些数据不是从表单派生的,而是通过客户端搜索驱动的数据。

这就是假定要发送到服务器的内容。 因此,如果转储了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中的各种数据设置,没有运气。 我对于如何格式化发送的数据(模仿我最初发布的内容)感到迷惑。

有任何想法吗?

您应该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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM