Zend Framework提交2个表单,1个提交

时间:2012-05-09 13:47:03

标签: forms zend-framework

好吧这听起来很简单,但有一个问题。我会试着解释一下情况。

我有一个用布局构建的页面,在中心有一个带有2个按钮和普通表单的视图。 2个按钮用于在两个输入表单之间切换。按下提交后,将提交两个表单。第一种形式用于一般信息,第二种形式用于上传图像以及信息(如果需要)。

现在要避免问题为什么不使用一个表单?这是一个以这种方式保持两个分开的请求。

所以我考虑使用2个视图,其中前2个按钮的行为类似于提交,使用表单数据创建POST请求但不实际将其提交到数据库。然后重定向到第二个视图,您可以在其中上传图像。

然后当按下实际提交按钮时,我希望收集的所有数据都写入数据库。

基本上它就像一个带有2个标签的页面,每个标签都有一个表单,只有1个提交按钮,用于在两个标签上提交表单。

我无法理解如何创建这两个按钮来存储帖子数据,然后让“最终”提交按钮使用之前的帖子数据,然后使用其他表单数据来创建新的组合帖子数据到存储在数据库中。

任何人都知道如何做到这一点?我正确地接近这个还是有更简单或更简洁的方法来做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:1)

这里有很多选项,一个选项是创建一个表单并将两个单独的部分添加为SubForms,即Zend_Form_SubForm的实例。然后,您可以单独设置表单的样式,选中它们,但为两者保留一个提交按钮。同样,当您提交时,表单数据将被分成每个子表单的数组元素。

你可以在这里看到更多相关信息:

http://framework.zend.com/manual/en/zend.form.advanced.html#zend.form.advanced.multiPage

我喜欢的另一个解决方案是使用动作助手来分割将表单添加到两个页面的过程,类似于上面的url,但是将表单信息存储在会话对象中,直到两者都经过验证然后处理这两种形式都是一次性的。

http://framework.zend.com/wiki/display/ZFPROP/Zend_Controller_Action_Helper_Multiform+Proposal+-+Simon+Mundy

http://framework.zend.com/wiki/pages/viewpage.action?pageId=42130

希望这会有所帮助。