如何阅读,如果一个复选框被选中在PHP?
当前回答
Zend框架在复选框上使用了一个不错的hack,你也可以自己做:
生成的每个复选框都与一个同名的隐藏字段相关联,位于复选框之前,值为“0”。然后,如果您的复选框为值“1”,则在结果get或POST中始终获得“0”或“1”值
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
其他回答
我已经使用这个技巧好几年了,它在PHP和数据库中使用时,对于选中/未选中的复选框状态完全没有任何问题。
HTML代码:(用于添加页面)
<input name="status" type="checkbox" value="1" checked>
提示:如果您想默认显示为未选中,则删除选中
HTML代码:(用于编辑页面)
<input name="status" type="checkbox" value="1"
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>
PHP代码:(用于添加/编辑页面)
$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}
提示:除非用户选中它,否则将总是空值。我们已经有PHP代码来捕获它,否则保持值为0。然后,简单地使用$status变量为数据库。
filter_input(INPUT_POST, 'checkbox_name', FILTER_DEFAULT, FILTER_FORCE_ARRAY)
<?php
if(isset($_POST['nameCheckbox'])){
$_SESSION['fr_nameCheckbox'] = true;
}
?>
<input type="checkbox" name="nameCheckbox"
<?php
if(isset($_SESSION['fr_nameCheckbox'])){
echo 'checked';
unset($_SESSION['fr_nameCheckbox']);
}
?>
了解isset,它是一个内置的“函数”,可以在if语句中使用,以判断一个变量是否已被使用或设置
例子:
if(isset($_POST["testvariabel"]))
{
echo "testvariabel has been set!";
}
要检查是否选中复选框,请使用empty()
当表单提交时,复选框将总是被设置,因为所有POST变量将与表单一起发送。
检查复选框是否选中为空,如下所示:
//Check if checkbox is checked
if(!empty($_POST['checkbox'])){
#Checkbox selected code
} else {
#Checkbox not selected code
}