如何阅读,如果一个复选框被选中在PHP?


当前回答

根据表单的操作,您可以在$_POST或$_GET数组中检查相应的值是否已设置且非空。

例如:使用一个名为"test"的POST表单(即:<input type="checkbox" name="test">,你会使用:

if(isset($_POST['test']) {
   // The checkbox was enabled...

}

其他回答

如果你的HTML页面是这样的:

<input type="checkbox" name="test" value="value1">

提交表单后,您可以检查它:

isset($_POST['test'])

or

if ($_POST['test'] == 'value1') ...

你可以用简短的if来表达:

$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;

或者使用新的PHP7空合并运算符

$check_value = $_POST['my_checkbox_name'] ?? 0;

根据表单的操作,您可以在$_POST或$_GET数组中检查相应的值是否已设置且非空。

例如:使用一个名为"test"的POST表单(即:<input type="checkbox" name="test">,你会使用:

if(isset($_POST['test']) {
   // The checkbox was enabled...

}

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变量为数据库。