我有一个关于 ajax 的小问题:
当我发送一个没有 ajax 的基本表单时,我通常给它的字段的 name 属性加上一个前缀,所以它们被分组在一个数组中。
例如:form1[a], form1[b] and form2[a]
作为字段名称,我将按相应前缀分组所有内容。( form1[a, b] and form2[a]
)
现在我想用ajax发布所有内容。我被迫在 JSON 中编码我的字段数组,因为 php 无法通过 ajax 处理括号(我得到了' form1[a"
')。当我执行 var_dump($_POST) 时,我的字段没有分组,并且它们的名称包含前缀!我怎样才能得到好的结果?
我希望有人能理解我的问题,如果你能提供帮助,谢谢!
编辑 :
所以,我找到了一种让它工作的方法。我无法序列化整个表单,因为相关输入是我唯一想要的,而不是其余的。
所以我的解决方案是这样的:
将每个序列化的输入存储在一个数组中。解码字符串,因为括号已转换为%5D
fields.push($(this).serialize());
decodeURI(fields.join('&'));
发送所有...
然后在 php 中:
parse_str($_POST, $data);
结果是:
array(form1 => array(a=1, b=2), b => array(a=1))
耶:D