带字段名称括号的Ajax表单

时间:2013-08-27 13:22:05

标签: jquery ajax post

我对ajax有一点疑问:

当我发送没有ajax的基本表单时,我通常会给它的字段的name属性赋一个前缀,所以它们被分组在一个数组中。

Ex:以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))

YAAY:D

1 个答案:

答案 0 :(得分:0)

尝试发送serialized数据,这对我有用:

$.ajax({
    /// your parameters
    data: $('yourFormSelector').serialize()
});