如何检查多个提交按钮条件在蛋糕php



//查看代码

echo $form->Create('Survey'); 
echo $form->submit( 'prev.arrow.png', array( 'name' => 'task', 'value' => 'next', 'div' => false ) ); 
echo $form->submit( 'next.arrow.png', array( 'name' => 'task', 'value' => 'prev', 'div' => false ) ); 
echo $form->end();

//控制器代码

if( isset( $this->params['form']['task'] ) ) {
    if( $this->params['form']['task'] == 'prev' ) {
        $this->Redirect( $prev_page ); 
        exit(); 
    } else if ( $this->params['form']['task'] == 'next' ) {
        $this->Redirect( $next_page ); exit(); 
    }
}

//IT不工作!!我也有超过7个提交按钮。最后一个按钮,处理保存数据库中的逻辑记录。

您的表单提交了两个具有相同名称的变量。(任务)如果不介意你按哪个按钮,你总是提交包含在表单标签之间的所有inputs (<form></form>)因此,您正在覆盖其中一个。

我建议你在你的控制器中调用两个不同的动作,这取决于被点击的按钮。

为此,您可以使用form帮助器的postLink操作创建两个按钮,而不是创建带有两个按钮的表单。

类似:

//calling the `prev` action for the current controller
echo $this->Form->postLink("Prev", array('action'=> 'prev'), array( 'class' => 'button'));
//calling the `next` action for the current controller
echo $this->Form->postLink("Next", array('action'=> 'next'), array( 'class' => 'button'));

然后在控制器中:

public function prev(){
   .... //whatever
}
public function next(){
   ... //whatever
}

或者,您也可以创建2个表单,其中包含两个不同的提交操作,每个按钮一个。但结果是一样的

最新更新