Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查cake php中的多个提交按钮条件_Php_Html_Cakephp 2.0 - Fatal编程技术网

如何检查cake php中的多个提交按钮条件

如何检查cake php中的多个提交按钮条件,php,html,cakephp-2.0,Php,Html,Cakephp 2.0,//视图代码 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', '

//视图代码

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个以上的提交按钮。还有最后一个按钮,用于处理数据库中的保存逻辑记录。
如果有其他逻辑,也建议?

您的表单正在提交两个同名变量。(任务)如果不介意按哪个按钮,则始终提交表单标签(
)之间包含的所有
输入
因此,您正在覆盖其中一个

我建议您根据单击的按钮在控制器中调用两个不同的操作

为此,您可以使用表单帮助器的
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
}

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

您的HTML表单中可能存在“名称冲突”。。。尝试将提交的名称重命名为其值,并以这种方式进行检查。。。另外,在执行此操作之前,请执行:
die(''.print\r($this->params,true)。''并检查服务器的输出。在CakePhp 2中,您应该调试'request'对象,使用以下命令:
debug($this->request);返回在操作开始时(在控制器中),这样至少可以看到表单发送的内容。请确保在
app/Config/core.php
中将debug设置为1或2,否则调试消息也将不可见,您是否应该在此处使用按钮进行导航,特别是因为如果单击“下一步”按钮,您将不会处理表单数据。在我看来,如果它的功能是“保存并转到下一页”,那就好了,但如果它只是导航,则是常规的