我的ZEND FORM中有两个提交按钮(zend 1.12)让我们看一个场景:
Button Submit-> Action(myproject/submit);
Button Save-> Action(myproject/save);
但是按钮是相同的表单如何使表单在按钮的不同页面中发布?
我尝试了以下操作并且无法正常工作:
//store
$save= new Submit('save');
$save->setLabel($this->getView()->translate('save'));
$save->setDecorators(array('ViewHelper',array('HtmlTag', array('tag' => 'div','class'=>'btn-save')),));
$this->setAction('/myproject/store');
$this->addElement($save);
//store
$submit= new Submit('submit');
$submit->setLabel($this->getView()->translate('submit'));
$submit->setDecorators(array('ViewHelper',array('HtmlTag', array('tag' => 'div','class'=>'btn-submit')),));
$submit->setAction('/myproject/submit');
$this->addElement($submit);
如果我点击任何按钮,它只会发布到/ myproject / submit'!! 有什么帮助吗?
答案 0 :(得分:2)
zend_Form
中的提交元素由标签区分,而不是您为该元素指定的名称。目前,您的表单有2个提交元素具有相同的标签,因此它们将以相同的方式在$_POST
数组中表示。类似于:
array(1) {
'submit' => 'Store'
}
您可以为每个提交元素指定一个唯一标签,然后测试该标签是否存在于$_POST
数组中。
//for example
if($request->isPost()){
if ($request->getPost('submit') == 'unique Label') {
//do some stuff
}
}
不需要javascript ...
答案 1 :(得分:1)
您不能在表单元素上setAction
。尝试对两个按钮使用javascript和onclick /onsubmit
事件。