如果在PHP中选中复选框,如何读取?

The*_*hew 247 html php forms checkbox post

如果在PHP中选中复选框,如何读取?

m_v*_*aly 324

如果您的HTML页面如下所示:

<input type="checkbox" name="test" value="value1">
Run Code Online (Sandbox Code Playgroud)

提交表格后,您可以查看:

isset($_POST['test'])
Run Code Online (Sandbox Code Playgroud)

要么

if ($_POST['test'] == 'value1') ...
Run Code Online (Sandbox Code Playgroud)

  • 复选框在检查时也可以具有值"on".因此,为了兼容性,使用`isset($ _ POST ['checkboxName'])`更容易. (57认同)
  • 某些浏览器可能会在未设置value属性时支持"on"值,但通常最好设置value属性并在提交时检查它. (12认同)
  • @Developer_ACE除非我误解你,否则如果选中该复选框,则此示例中的值将为"value1".如果没有检查,`$ _POST ['test']`就不存在了. (9认同)
  • 如果选中此框,"Value1"会改变吗? (3认同)

reg*_*ero 97

Zend Framework在复选框上使用了一个很好的黑客,你也可以自己做:

生成的每个复选框都与同名的隐藏字段相关联,位于复选框之前,值为"0".然后,如果您的复选框为值"1",您将始终在生成的GET或POST中获得"0"或"1"值

<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1"> 
Run Code Online (Sandbox Code Playgroud)

  • 当取消选中该复选框时,它不会在帖子中传输(因此只传输隐藏).当它被检查时,它被传输,并将覆盖隐藏值. (5认同)

ryb*_*111 50

使用复选框作为数组时:

<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">
Run Code Online (Sandbox Code Playgroud)

你应该使用in_array():

if(in_array('Orange', $_POST['food'])){
  echo 'Orange was checked!';
}
Run Code Online (Sandbox Code Playgroud)

记得先检查数组是否已设置,例如:

if(isset($_POST['food']) && in_array(...
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,正是为此寻找! (2认同)

Gau*_*164 39

让你的html为你的复选框

<input type="checkbox" name="check1">
Run Code Online (Sandbox Code Playgroud)

然后在提交表单后,您需要检查一下

if (isset($_POST['check1'])) {

    // Checkbox is selected
} else {

   // Alternate code
}
Run Code Online (Sandbox Code Playgroud)

假设这check1应该是您的复选框名称.如果您的表单提交方法是,GET那么您需要检查$_GET变量,如

if (isset($_GET['check1'])) {

   // Checkbox is selected
} 
Run Code Online (Sandbox Code Playgroud)


Ham*_*han 11

$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

  • 我见过的最好的解决方案 (2认同)

and*_*ndy 6

要检查复选框是否被选中,请使用empty()

提交表单时,复选框将始终被设置,因为所有POST变量都将与表单一起发送。

检查复选框是否被选中为空,如下所示:

//Check if checkbox is checked    
if(!empty($_POST['checkbox'])){
 #Checkbox selected code
} else {
 #Checkbox not selected code
}
Run Code Online (Sandbox Code Playgroud)

  • 如果未选中该复选框,则不会发布该复选框,因此现在将始终设置该复选框。 (4认同)
  • ^ NOT* 始终被设置 (2认同)

小智 5

我使用这个技巧已经有好几年了,并且在与PHP和数据库一起使用时,它可以完美地工作,而对已选中/未选中复选框状态没有任何问题。

HTML代码:(用于添加页面)

<input name="status" type="checkbox" value="1" checked>
Run Code Online (Sandbox Code Playgroud)

提示:如果要默认显示为未选中,请删除“复选框”

HTML代码:(用于编辑页面)

<input name="status" type="checkbox" value="1" 
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>
Run Code Online (Sandbox Code Playgroud)

PHP代码:(用于添加/编辑页面)

$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}
Run Code Online (Sandbox Code Playgroud)

提示:除非用户检查,否则总会有空值。因此,我们已经有PHP代码可以捕获它,否则将其值保持为0。然后,只需对数据库使用$ status变量即可。