假设我有 3 种形式
<form name="form1">
<input name="input"></input>
<submit></submit>
</form>
<form name="form2">
<input name="input"></input>
<submit></submit>
</form>
<form name="form3">
<input name="input"></input>
<submit></submit>
</form>
每个表单都有自己的提交按钮
现在假设我有另一种形式
<form id="submitAll">
<submit value="submit all"></submit>
</form>
其唯一功能是同时提交所有其他 3 个表单......现在是限制:
- 当提交submitAll时,它必须使用Ajax来完成,并将输入数据从所有其他3个表单转发到processor.php,最好通过POST
- processor.php 需要能够区分哪些输入进入哪个表单...然后分别处理每个表单的输入
我的问题是......什么是使processor.php能够区分哪些输入属于哪个表单的最佳方法......
我之前的尝试是使用 jquery 的序列化来序列化所有 3 个表单的输入,但随后它将所有输入合并到一个字符串中,并注意到由于表单中的输入具有相同的名称,因此该字符串类似于“input=blah&input=blah&input=blah",我无法区分哪个输入进入哪个表单......
最好让表单中的输入具有相同的名称,以便processor.php能够顺利执行
是否有办法使 POST 字符串作为数组或 json 或任何其他格式传递,以便processor.php 可以区分哪个输入进入哪个表单而不使输入名称不同?请记住它需要通过 Ajax 来完成
提前致谢!!!
最佳答案
为什么不使用像这样的命名约定
- name="Form1[输入]"
- name="Form2[输入]"
- name="Form3[输入]"
然后进行常规序列化和 $.post,这将帮助您在处理器循环中保持相同的命名约定
编辑:
<?php
foreach($_POST as $form) {
// $form = array('input' => 'i am here')
processForm($form); // names are still the same for all forms
}
?>
关于jquery - ajax通过jquery提交多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340741/