如何检测Zend Framework表单上按下了哪个提交按钮?

| 我有一个带有两个提交按钮的Zend Framework表单
$changes = new Zend_Form_Element_Submit(\'save_changes\');
$changes->setLabel(\'Save Changes\');

$delete = new Zend_Form_Element_Submit(\'delete\');
$delete->setLabel(\'Delete\');
呈现HTML的方式如下:
<input type=\"submit\" name=\"save_changes\" id=\"user_save_changes\" value=\"Save Changes\" >
<input type=\"submit\" name=\"delete\" id=\"user_delete\" value=\"Delete\" >
在控制器中,如何确定用户按下了哪个按钮?     
已邀请:
就您而言,您应该可以检查
if(isset($_POST[\'save_changes\'])
// or
if(isset($_POST[\'delete\'])
由于将仅提交单击按钮的值。 通常,您将两个按钮都命名为相同的名称(例如,动作),然后将 您想要执行的操作的价值。不幸的是,这不能很好地工作 与IE。检查此页面以获取有关多个解决方案的更多信息 提交按钮。     
由于您使用的是Zend,因此我建议您使用一种Zend式的方法。 您可以直接通过元素的名称来调用元素,Zend的表单按钮(按钮,重置,提交)方法称为called3 submit。 在您的代码中它将是:
if ($form->save_changes->isChecked()) {
    // Saving ...
else if ($form->delete->isChecked()) {
    // Removing ...
    

bab

实际上,您可以通过以下方式获得此信息:
if($this->getRequest()->getPost(\'save_changes\'){
//Code here
}

if($this->getRequest()->getPost(\'delete\'){
//Code here
}
我之所以创建两个if条件,是因为即使没有单击任何提交按钮,也无法加载另一个页面,否则您将无法执行if条件,则将执行另一个条件。 例:
if($this->getRequest()->getPost(\'save_changes\'){
  //once you load this will become true because you didn\'t click this
}else{
  //once you load this page this will become true because you didn\'t click the save_changes submit button
}
真实的故事。     
$data = $this->getRequest()->getPost();
if (array_key_exists(\'save_changes\', $data)) {
..
} else if (array_key_exists(\'delete\', $data)) {
..
}
    
 $formData = $this->getRequest()->getPost(); 

if($formData[\'submit\']==\'save_changes\'){ // echo \"save chanes\" ; }
if($formData[\'submit\']==\'delete\'){ // echo \"delete\";}
    

要回复问题请先登录注册