小编典典

ajax通过jquery提交多种表单

ajax

所以假设我有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这样做,并且最好通过POST将输入的数据从所有其他3种形式转发到processor.php
  2. processor.php需要能够区分输入到哪种形式…然后分别处理每种形式的输入

我的问题是..什么是使processor.php能够区分哪些输入属于哪种形式的最佳方法....

我以前的尝试是使用jquery的serialize序列化所有3个表单的输入,但是随后它将所有输入合并为一个字符串,并注意到由于表单中的输入具有相同的名称,因此字符串类似于“
input = blah&input = blah&input = blah“,我无法区分哪种输入是哪种形式.....

最好将表单中的输入具有相同的名称,以便Processor.php可以平稳执行

是否有使POST字符串作为数组或json或任何其他格式传递的方法,以便Processor.php可以区分哪种输入以哪种形式进行输入而无需使输入名称不同?记住它需要通过Ajax这样做

提前致谢!!!


阅读 273

收藏
2020-07-26

共1个答案

小编典典

为什么不使用命名约定,例如

  • name =“ Form1 [input]”
  • name =“ Form2 [input]”
  • name =“ Form3 [input]”

然后执行常规序列化和$ .post,这将帮助您在处理器循环中保持相同的命名约定

编辑:

<?php 
foreach($_POST as $form) {
     // $form = array('input' => 'i am here')
     processForm($form); // names are still the same for all forms
}
?>
2020-07-26