2013-03-02 57 views
0

//查看代码如何检查多提交按钮条件蛋糕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(); 

    } 

} 

//这是行不通的! 而且我还有超过7个提交按钮。和一个最终按钮,用于处理数据库中的SAVE逻辑记录。 如果还有其他逻辑,那么也建议?

+0

您可能在HTML表单中出现“名称冲突”...尝试将提交的名称重命名为它们的值,并以这种方式检查它们......另外,在执行此操作之前,请执行:'die('

' . print_r($this->params, true) . '
');'并检查服务器的输出。 – 2013-03-02 10:07:27

+0

在CakePhp 2中,您应该调试'request'对象,使用:debug($ this-> request);返回;'在动作开始时(在Controller中),这样至少可以看到表单发送的内容。一定要在'app/Config/core.php'中设置debug为1或2,否则调试信息将不可见 – thaJeztah 2013-03-02 11:13:22

+0

另外,想知道你是否应该在这里使用按钮导航,特别是因为你不会处理表单-data,如果点击'下一步'按钮。国际海事组织,如果它的功能是“保存并转到下一页”,那将是好事,但如果它只是导航,常规的

然后在你的控制器:

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

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

或者,你也可以创建2种形式与两个不同的提交动作,每一个按钮。但它会是一样的。