使用Ajax一次发送多个表单

时间:2009-09-15 12:43:35

标签: php javascript ajax

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

我有一个包含9个表单的大页面,对应不同的表格。我已经和设计搏斗了,我无法通过ajax将所有表格发送到服务器进行处理。有很多相互关系。我也无法将表格合并为一个大表格。所以问题是通过ajax发送大量表单的最佳方式是什么。为了使问题进一步复杂化,存在具有相同名称的字段的动态表单。

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

我只是不知道是否有一个尝试过的,更简单的解决方案而且我正在鼹鼠山上建造一座山

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

你应该能够毫不费力地发送9个单独的AJAX请求(假设a:每个都不依赖于另一个的响应,而b:这不是一直发生的事情。)

使用你的javascript库(你正在使用一个,对吧?)只需遍历你的表单,然后AJAX提交每一个。我认为它可能一次只能处理2个,但如果这对你的设计来说不是问题,那么一切都应该是甜蜜的。

它肯定会使PHP / Server-Side部分更加简单。

如果您正在使用高流量网站,那么您可能希望减少正在进行的请求数量,但您当前的设置可能会运行得非常好。

答案 2 :(得分:1)

我准备了一个javascript调度程序,可以聪明地完成发布数据的工作。因此,当按下提交按钮时,它将收集所需的所有数据,然后将数据发送到服务器端的相应控制器。 它可以阻止形式,同时或显示“处理...”弹出窗口。