【问题标题】:php unable to get serialized data in phpphp无法在php中获取序列化数据
【发布时间】: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


【解决方案1】:

parse_str 解析变量中的字符串,并将其放入数组中。 但重复的数组键是不可能的,

因此您没有获得所有值,因为它们具有相同的键!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多