0

我有一个关于 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

4

1 回答 1

0

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

$.ajax({
    /// your parameters
    data: $('yourFormSelector').serialize()
});
于 2013-08-27T13:26:47.707 回答