如何检测使用哪个按钮提交表单?

问题描述

我似乎无法检测到 cakePHP4 中的按钮按下。在 cake3 中很容易。

在表格中我有

echo $this->Form->button('View Data',[
    'name' => 'viewdata','type' => 'submit','class' => 'btn btn-primary'
]); 

在控制器中我有

if ($this->request->is('post') ) {
    .... 
    debug($this->request->getDdata());
    if (!empty($this->request->getData('viewdata'))) {

我单击该按钮并看到 'viewdata'='',因此它检测到该按钮已被单击,但它的值为 = null?并且我无法调用 viewdata 的按钮按下功能

https://book.cakephp.org/4/en/views/helpers/form.html#creating-buttons-and-submit-elements

解决方法

值不是null,它是一个空字符串。因此,例如,您可以对该确切值进行严格检查,即:

if ($this->request->getData('viewdata') === '') {
    // view data submit button was used
}

或者只是通过与 null 进行比较来检查密钥是否存在:

if ($this->request->getData('viewdata') !== null) {
    // view data submit button was used
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...