1

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

4

2 回答 2

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...

于 2013-06-06T11:47:41.097 回答
1

你不能setAction在表单元素上。尝试onclick /onsubmit对两个按钮使用 javascript 和事件。

于 2013-06-06T08:33:20.407 回答