表单 – CakePHP 2.0确定哪个提交按钮已被点击
发布时间:2020-12-14 19:31:41 所属栏目:资源 来源:网络整理
导读:在Cake PHP 1.3中,您可以创建一个包含多个提交按钮的表单: echo $this-Form-submit('Submit 1',array('name'='submit');echo $this-Form-submit('Submit 2',array('name'='submit'); 并检测控制器中的哪个提交按钮被按下: if (isset($this-params['form'][
在Cake
PHP 1.3中,您可以创建一个包含多个提交按钮的表单:
echo $this->Form->submit('Submit 1',array('name'=>'submit'); echo $this->Form->submit('Submit 2',array('name'=>'submit'); 并检测控制器中的哪个提交按钮被按下: if (isset($this->params['form']['submit']) && $this->params['form']['submit'] == "Submit 1") { // first button clicked } 在CakePHP中,$this-> params [‘form’]未设置,并且点击的按钮值不会显示在$this->请求中的任何位置,$this-> request->数据,$this- > params,$this-> data或$_POST. 如何确定在CakePHP 2.0中点击了哪个按钮? 提前致谢. 编辑: 根据要求,以下是窗体的代码: <?php echo $this->Form->create('History',array('action'=>'add')); ?> <div class='submit'> <?php echo $this->Form->submit('Yes',array('div'=>false,'name'=>'submit')); echo $this->Form->submit('No','name'=>'submit')); ?> </div> <?php echo $this->Form->end()?> 并输出形式: <form action="/projects/kings_recruit/trunk/www/histories/add" id="HistoryAddForm" method="post" accept-charset="utf-8"> <div style="display:none;"> <input name="_method" value="POST" type="hidden"> </div> <div class="submit"> <input name="submit" value="Yes" type="submit"> <input name="submit" value="No" type="submit"> </div> </form> 解决方法
通常,对于两个提交按钮使用相同的名称是不好的做法.
在$_POST和$this-> request->数据中应该有一个“提交”键 我在CakePHP 2.1.1中进行了测试,如下所示: 视图代码: <?php echo $this->Form->create('Message',array('action'=>'test')); // Extra test input field echo $this->Form->input('test'); ?> <div class='submit'> <?php echo $this->Form->submit('Yes','name'=>'submit')); ?> </div> <?php echo $this->Form->end()?> 在$this-> request->数据中的控制器中: array( 'submit' => 'Yes','Message' => array( 'test' => 'TestFieldTest' ) ) 而在$_POST: array( '_method' => 'POST','data' => array( 'Message' => array( 'test' => 'TestFieldTest' ) ),'submit' => 'Yes' ) 你也可以给两个不同的名字提交: echo $this->Form->submit('Yes','name'=>'submitY')); echo $this->Form->submit('No','name'=>'submitN')); 这样,您可以在$_POST或$this-> request->数据中区分它们,因为这些键将是提交的名称: array( 'submitY' => 'Yes','Message' => array( 'test' => 'foo' ) ) array( '_method' => 'POST','data' => array( 'Message' => array( 'test' => 'Bar' ) ),'submitY' => 'Yes' ) 然后确定按下哪个按钮,您可以使用简单的isset($_ POST [”])或$this-> request->数据? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |