【发布时间】:2013-02-27 19:02:42
【问题描述】:
我有一个具有深度多维输入的表单,如下所示:
<form id="theForm">
<input type='text' name='one[two][three][]' />
<input type='text' name='one[two][three][]' />
<input type='text' name='four[five][six][seven]' />
<input type='text' name='eight[nine][ten]' />
</form>
我正在尝试通过 AJAX 以与正常提交表单相同的格式发送值。我的意思是,如果我要点击提交按钮,在 PHP 中,$_POST 看起来像这样。这就是我想要的:
array( 'one' => array( 'two' => array('three'=>array( [0] => "", [1] => "" ) ) ),
'four' => array( 'five' => array ('six' => array( 'seven' => "" ) ) ),
'eight' => array( 'nine' => array( 'ten' => "" ) ) )
)
我实际上是在尝试对表单提交进行 AJAX。当我这样做时
$("#theForm").serializeArray()
通过 $.post() 我的 $_POST 发送的邮件如下所示:
array( [0] => array( "name" => string "one[two][three][]", value=>"")
[1] => array( "name" => string "one[two][three][]", value=>"")
[2] => array( "name" => string "four[five][six][seven]", value=>"")
[3] => array( "name" => string "eight[nine][ten]", value=>"")
)
这对我没有用。我需要保留我之前概述的多维结构。我想我可以遍历数组并切碎字符串以重新创建我需要的东西,但这对我来说似乎很愚蠢。是一种 jQuery 友好的方式来实现这一点吗?
我已经阅读了关于 jQuery 如何很好地发送多维数组的其他帖子,所以也许我需要问的问题是,我如何提取表单数据并将其保存在多维数组中?
【问题讨论】:
-
Check out this answer。这会将表单转换为 JS 对象,通过将元素正确转换为对象和数组,可以保留表单数组的键值结构。
-
你能显示你通过 AJAX 发送数据的代码吗?
标签: php javascript ajax forms multidimensional-array