zend两个表单相同的页面一起提交

luc*_*uca 2 php zend-framework form-submit

我构建了两个自定义Zend_Form类:form_1和form_2.我在同一个控制器中实现了它们.

$form_1=new form_1();
$form_2=new form_2();
Run Code Online (Sandbox Code Playgroud)

form_1和form_2分别提交了名为"submit_form_1"的按钮,第二个是"submit_form_2".(例如,新的Zend_Form_Element_Submit('submit_form_1')..)

所以我在我的控制器中添加了一个片段来检查提交的表单:

if(($this->_request->isPost('submit_form_1')))
{
 echo "you clicked for form_1!";
}

if($this->_request->isPost('submit_form_2'))
{
 echo "you clicked for form_2!";
}
Run Code Online (Sandbox Code Playgroud)

但似乎点击了我的两个表单的submit_form_1或submit_form_2!以便上面的代码段输出为:

you clicked for form_1!you clicked for form_2!
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Ps两个表单操作都留空,以便表单发布到同一页面(我更愿意不将这两个表单解决为不同的操作,如您所暗示的那样=))

谢谢

卢卡

Phi*_*hil 5

Zend_Controller_Request_Http::isPost() 不接受(或使用)任何参数.

您的两个条件都评估为true,因为请求方法是POST.

我想你想用Zend_Controller_Request_Http::getPost(),比如说

if ($this->_request->getPost('submit_form_1', false)) {
    echo "you clicked for form_1!";
}

if ($this->_request->getPost('submit_form_2', false)) {
    echo "you clicked for form_2!";
}
Run Code Online (Sandbox Code Playgroud)