【发布时间】:2014-04-07 12:41:26
【问题描述】:
我正在使用 jQuery 将表单数据转换为序列化表单:
var data = $('#frm').serialize();
在 php 中我得到这个:
fiscalyear_id=4&category=Category+A&isgraph=on&Title=a&Value=a&Title=b&Value=b&category=Category+B&Title=c&Value=c&Title=d&Value=d&category=Category+C&Title=e&Value=e&Title=f&Value=f&data;=&csrf_check=9c288285b379701b27c3836091c00b04
当我这样做时:
parse_str($_POST['data'], $data);
pretty_print($data);
我明白了:
Array
(
[fiscalyear_id] => 4
[category] => Category C
[isgraph] => on
[Title] => f
[Value] => f
[data;] =>
[csrf_check] => 9c288285b379701b27c3836091c00b04
)
可以看出,并不是所有的参数都在上面的数组中。有谁知道我做错了什么?感谢您的帮助
【问题讨论】:
-
您的值正在重新签名,因此您只能看到最后一个 - Title=a...Title=b。请出示您的表格 html
-
您有重复的密钥。为什么你不在客户端使用 Value[]?
-
&Title=c&Value=c&Title=d这不是发送数据的正确方式,它应该是&Title[]=c&Value[]=c&Title[]=d等。因为它应该是数组格式,否则 POST 或 GET 只会得到最后一个值。跨度> -
由于重复键,数组中的值被覆盖。
标签: php jquery serialization