Zend framework2 如何在Zend Framework 2中使用2个提交按钮?

Zend framework2 如何在Zend Framework 2中使用2个提交按钮?,zend-framework2,Zend Framework2,我需要我的Zend表单上的2个提交按钮。一个将保存表单数据,第二个将是返回表单第一页的编辑功能。这就是我创建提交表单按钮的方式 $this->add(array( 'name' => 'editaction', 'type' => 'submit', 'options' => array(

我需要我的Zend表单上的2个提交按钮。一个将保存表单数据,第二个将是返回表单第一页的编辑功能。这就是我创建提交表单按钮的方式

    $this->add(array(
            'name' => 'editaction',
                            'type'  => 'submit',
                            'options' => array(
                                        'label'=> 'editaction'),
            'attributes' => array(
                    'value' => 'Edit',
                    'id' => 'editbutton',
                    'class' => 'btn btn-success btn-lg',
                                            'formnovalidate' => 'formnovalidate'
            ),
    ));

    $this->add(array(
            'name' => 'submitaction',
                            'type'  => 'submit',
                            'options' => array(
                                        'label'=> 'submitaction'),
            'attributes' => array(
                                    'value' => 'Post your advert',
                                    'id' => 'submitbutton',
                                    'class' => 'btn btn-success btn-lg',
            ),
    )); 
当我点击按钮并检查Firebug中发送的内容时,我从两个submit按钮获取值。我在我的控制器中尝试了各种不同的方法来找出单击了哪个提交按钮,但它似乎不起作用。下面是我最后一个简单的测试。我得到的只是“编辑”。我做错了什么

     // Form was send
$request = $this->getRequest();
    if ($request->isPost()) {
        $postData = $request->getPost();
        $form->setData($this->request->getPost());
        if ($request->getPost('editaction') == 'Edit')
        {
            echo 'Edit';
        }
        elseif($request->getPost('submitaction')=='Post your advert'){
             echo 'Submit';
        }
    } 
更新


经过越来越多的尝试,我发现问题并不是Zend Framework 2,而是由开源Javascript库引起的。令人沮丧的是,在我认为Javascript可以正常工作之后,我发现表单的其余部分出现了问题

您可以为两个提交按钮指定相同的名称,而不是不同的名称。然后,post值将等于单击按钮的值

这在我在GitHub上的一个项目中,除了我将其用于save vs.apply(其中save保存表单并返回indexAction,但apply在保存后保留在编辑页面上)

两个文件:

  • 这是我的按钮的html:

    <div class="col-sm-5">
      <input type="submit" name="submit" id="submitbutton" class="form-control btn btn-success" value="Save">
    </div>
    <div class="col-sm-5">
      <input type="submit" name="submit" id="applybutton" class="form-control btn btn-warning" value="Apply">
    </div>
    
    
    
  • 有一个
    saveAction()
    applyAction()
    来处理
    按钮以不同的方式。(两者都调用editAction,但重定向方式不同)

    可能是个愚蠢的问题,但如果它们都有相同的名称,我如何使用Zend Framework 2调用视图中的2个提交按钮。我通常使用的是一个完全不愚蠢的问题。我不知道您需要按名称访问元素。也许有一种方法可以通过他们(唯一的)ID访问他们?老实说,不知道。就我所知有限,它也应该以另一种方式工作,但事实并非如此,可能是因为某个地方有一个小错误……非常感谢您分享您的解决方案/项目。很高兴看到其他人如何实现他们的目标。正如我在上面的更新中所写,问题在于Javascript库,它总是添加所有提交按钮。我现在已经将库更改为忽略提交按钮,从那时起,它就不再工作了。但还是非常感谢!