即使没有从 HTML 到 PHP 检查,如何获取所有复选框变量?
题
我注意到 PHP 似乎只返回选中复选框的值。我想查看复选框列表,而不仅仅是选中复选框的值。有没有办法检测未选中框的变量?
我问这个问题是因为我希望能够更新设置。例如,我有一些已选中的选项,但如果用户决定取消选中某个选项,我需要知道该未选中的值,以便我可以更新要禁用的选项。
解决方案
我只是碰到了这个问题我自己。我加入了重复hidden
场具有相同名称的解决了这个问题。当浏览器发送该信息,第二字段将覆盖第一(以便确保该hidden
字段至上)。
<input type="hidden" name="foo" value="">
<input type="checkbox" name="foo" value="bar">
如果该checkbox
未选中你:
$_REQUEST[ 'foo' ] == ""
如果该checkbox
被选中你:
$_REQUEST[ 'foo' ] == "bar"
其他提示
这是不是可以纯粹在PHP进行。
浏览器,只有当他们被检查发送有关复选框的信息,如果您还想发送有关选中复选框的信息,你必须在表单中添加隐藏字段,并使用JavaScript来管理它们。
我只是碰到这个问题绊倒自己,我通过在数据库中更新所有值进行排序选择它,然后重新检查仅是在POST数据中的,这工作对我很好,但可能不是茶的每个人的杯子
一个纯PHP实现似乎并不可能,你可以尝试使用jQuery / AJAX虽然。
假设您要检查 3 个复选框,update_settings 是函数的名称,该函数将复选框名称作为第一个参数,将 bool 值作为第二个参数(激活或不激活)。
采取以下片段:
$checkboxes = array("checkbox1", "checkbox2", "checkbox3");
foreach($checkboxes as $checkbox){
$checked = isset($_POST[$checkbox]);
update_settings($checkbox, $checked);
}
虽然 彼得·科瓦奇 解决方案它将起作用,我认为它不实用,因为您已经可以使用 isset 检查变量。
不隶属于 StackOverflow