以zend形式提交并保存操作

时间:2013-06-06 08:05:57

标签: forms zend-framework button action zend-form

我的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'!! 有什么帮助吗?

2 个答案:

答案 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事件。