gpt4 book ai didi

php - CakePHP 复选框 - 忽略未选中的复选框

转载 作者:行者123 更新时间:2023-12-02 22:27:09 27 4
gpt4 key购买 nike

这应该是一个很好的简单问题。

在一个表单上,我有许多与为特定功能选择不同用户相关的复选框。复选框是这样创建的

$this->Form->input("user_select", array(
"type" => "checkbox",
"name" => "data[Registration][User][]",
"id" => "UserId" . $user['User']['id'],
"value" => $user['User']['id'],
"label" => false
));

提交此表单后,它会到达注册 Controller ,但请求->数据数组包含未选中的复选框,格式如下:

array(
'Registration' => array(
'Users' => array(
(int) 0 => '0',
(int) 1 => '0',
(int) 2 => '0',
(int) 3 => '0',
(int) 4 => '31',
(int) 5 => '0',
(int) 6 => '11'
),
)

现在数据没有任何问题,可以清楚地看到用户的 31 和 11 已被选中,但我更喜欢以下形式的数组:

array(
'Registration' => array(
'Users' => array(
(int) 4 => '31',
(int) 6 => '11'
),
)

这将使处理和验证变得更加容易。

那么,CakePHP 是否有防止未选中的复选框显示在请求->数据数组中的工具?

最佳答案

尝试将 'hiddenField' => false 添加到您的 input() 调用中:

$this->Form->input("user_select", array(
"type" => "checkbox",
"name" => "data[Registration][User][]",
"id" => "UserId" . $user['User']['id'],
"value" => $user['User']['id'],
"label" => false,
"hiddenField" => false
));

CakePHP 将自动添加一个隐藏字段,除非您告诉它不要这样做,大概是这样所有表单的键都在 $this->data->request 中表示。检查this page获取更多信息。

关于php - CakePHP 复选框 - 忽略未选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com