Php 使用Ajax一次发送多个表单

Php 使用Ajax一次发送多个表单,php,javascript,ajax,Php,Javascript,Ajax,这是一个技术设计问题,而不是语法问题 我有一个很大的页面,有9个表格对应不同的表格。我一直在努力设计,我没有办法,我必须通过ajax将所有表单发送到服务器进行处理。有很多相互关系。我也不能把这些表格合并成一个大表格。所以问题是通过ajax发送大量表单的最佳方式是什么。使问题进一步复杂化的是,存在具有同名字段的动态表单 我正在尝试一种技巧: 1.序列化每个表单, 2.将表单名称前置到每个字段名称 3.将表单的序列化版本合并为一个 4.将组合的序列化表单作为一个表单发布到服务器 5.在服务器端将它们

这是一个技术设计问题,而不是语法问题

我有一个很大的页面,有9个表格对应不同的表格。我一直在努力设计,我没有办法,我必须通过ajax将所有表单发送到服务器进行处理。有很多相互关系。我也不能把这些表格合并成一个大表格。所以问题是通过ajax发送大量表单的最佳方式是什么。使问题进一步复杂化的是,存在具有同名字段的动态表单

我正在尝试一种技巧:
1.序列化每个表单, 2.将表单名称前置到每个字段名称 3.将表单的序列化版本合并为一个 4.将组合的序列化表单作为一个表单发布到服务器 5.在服务器端将它们拆分为单独的阵列,然后最终执行应用程序逻辑


我只是不知道是否有一个行之有效的更简单的解决方案,我正在从一座小山上爬出一座大山

我会准备一个javascript调度程序,它会巧妙地完成发布数据的工作。因此,当按下submit按钮时,它将收集所需的所有数据,然后将数据发送到服务器端的相应控制器。
同时,它可能会阻止表单,或者显示“处理…”弹出窗口。

如果真的没有办法重新设计页面,那么您的解决方案对我来说似乎简单明了,根本不是“山”式的。然而,对我来说,你对页面的描述是“重新设计”,当然我没有足够的信息来处理


一个这样的重新设计是在发生字段更改时将其发送到服务器,而不是等待并提交整个内容。如果您需要用户在完成整个任务时显式提交,服务器端可以将它们保持为“挂起”。但这取决于服务器资源的开销等。

您应该能够轻松地发送9个单独的AJAX请求(假设a:每个请求都不依赖于另一个请求的响应,b:这不是一直都在发生的事情)

使用您的javascript库(您正在使用一个,对不对??)只需在表单中循环并提交每个表单。我认为一次可能只处理2个,但如果这对您的设计来说不是问题,那么一切都应该是美好的

它肯定会使等式中的PHP/服务器端部分简单得多


如果您使用的是高流量的站点,那么您可能希望减少请求的数量,但是您当前的设置很有可能工作得很好。

有没有任何方法可以在一次大型Ajax调用中提交请求?简单的方法(对于像Ajax这样挑剔的东西很重要)是使所有字段的成员具有相同的形式,并使用后端脚本进行委托和逻辑。看起来有点防弹。是的,我可以把它们结合起来。我正在描述我将如何做到这一点-通过组合序列化表单。无论如何,在我将表单发送到Ajax之前,我必须序列化每个表单。这不是他说的他正在做的吗?请注意:如果您确实发送了九个请求,请注意,在第一对请求之后,它们将排队并以串联方式发生,而不是以并行方式发生,即使您异步发送它们。大多数浏览器和许多服务器限制相同端点之间的并发请求(通常一次两个)。所以这可能需要一些时间。这就引出了依赖性的问题。当更新必须连续发生时,至少是其中的一部分,您不能一次发送所有更新,但必须等到一个更新完成,在发送第二个更新之前使用它的结果。这将增加总时间。我必须在不断更新每个表单和将数据保持在“挂起”模式之间进行选择,直到用户按照您的建议T.J.进行“保存”,或者将所有表单合并到一个提交中,并让一个服务器程序对其进行解析和处理。谢谢大家!这将是在这两种技术之间的一个决定——一次完成,还是零碎完成。每一种都有其应用的复杂性。它类似于具有标题和详细信息依赖关系的订单输入系统,详细信息有自己的依赖关系。谢谢你的想法