jquery - ajax通过jquery提交多个表单

标签 jquery ajax forms submit

假设我有 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 个表单......现在是限制:

  1. 当提交submitAll时,它必须使用Ajax来完成,并将输入数据从所有其他3个表单转发到processor.php,最好通过POST
  2. 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/

相关文章:

javascript - getFullYear 不是函数

html - 如何在使用无序列表设置表单样式时对齐单选按钮?

jquery - 可折叠菜单对于移动横向来说太长

jQuery 1.4.2 : . 是 (":focus")给出语法错误

带有回调函数的jquery动画不适用于滚动

javascript - 通过ajax将PrimeFaces Schedule JSF页面加载到另一个JSF页面中

javascript - 如何限制在 html 选择框中选择的选项?

jquery - 将 Logo /页眉始终保持在页面顶部

javascript - 如何检查 ajax 响应是否为 javascript 内容类型?

javascript - ajax 中的 Laravel Blade 状况