表单 – CakePHP 2.0确定哪个提交按钮已被点击

在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->数据?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


html5中section的用法
span标签和p标签的区别
jsp文件和html文件的区别是什么
span标签和div的区别
html颜色代码表大全
span标签的作用是什么
dhtml的主要组成部分包括什么
html编辑器哪个软件好用
span标签属于什么样式标签
html文件乱码怎么办
html怎么读取json文件
html文件打开乱码怎么恢复原状
html怎么链接外部css
html文件怎么保存到本地
html怎么链接css文件
html和css怎么连接
html和css怎么关联
html文件怎么保存到一个站点
html文件怎么写
html出现乱码怎么解决