Answers:
如果您的HTML页面如下所示:
<input type="checkbox" name="test" value="value1">
提交表格后,您可以使用以下方法进行检查:
isset($_POST['test'])
要么
if ($_POST['test'] == 'value1') ...
on
选中复选框时,复选框也可以具有value 。因此,出于兼容性考虑,使用起来更加容易isset($_POST['checkboxName'])
。
value1
选中该复选框的情况。如果不检查,$_POST['test']
将根本不存在。
Zend Framework在复选框上使用了不错的技巧,您也可以自己做:
生成的每个复选框都与一个同名的隐藏字段相关联,该字段位于该复选框的正前方,并且值为“ 0”。然后,如果您的复选框的值为“ 1”,则始终在结果GET或POST中获得“ 0”或“ 1”值
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
input[type="checkbox"]
?
当使用复选框作为数组时:
<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">
您应该使用in_array()
:
if(in_array('Orange', $_POST['food'])){
echo 'Orange was checked!';
}
切记先检查数组设置是否正确,例如:
if(isset($_POST['food']) && in_array(...
foreach ($_POST['food'] as $selected_food)
在选中的复选框上工作是不错的,谢谢
让您的html复选框像
<input type="checkbox" name="check1">
然后,提交表格后,您需要像
if (isset($_POST['check1'])) {
// Checkbox is selected
} else {
// Alternate code
}
假设这check1
应该是您的复选框名称,并且如果您的表单提交方法是,GET
则需要使用$_GET
诸如
if (isset($_GET['check1'])) {
// Checkbox is selected
}
$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;
我使用这个技巧已经有好几年了,并且在与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变量即可。
要检查是否已选中复选框,请使用empty()
提交表单后,将始终设置此复选框,因为所有POST变量将与表单一起发送。
检查复选框是否被选中为空,如下所示:
//Check if checkbox is checked
if(!empty($_POST['checkbox'])){
#Checkbox selected code
} else {
#Checkbox not selected code
}
好,上面的示例仅在您想插入一个值时才起作用,对于将不同的值更新到不同的列没有用,所以这是我进行更新的小技巧:
//EMPTY ALL VALUES TO 0
$queryMU ='UPDATE '.$db->dbprefix().'settings SET menu_news = 0, menu_gallery = 0, menu_events = 0, menu_contact = 0';
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
if(!empty($_POST['check_menus'])) {
foreach($_POST['check_menus'] as $checkU) {
try {
//UPDATE only the values checked
$queryMU ='UPDATE '.$db->dbprefix().'settings SET '.$checkU.'= 1';
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
} catch(PDOException $e) {
$msg = 'Error: ' . $e->getMessage();}
}
}
<input type="checkbox" value="menu_news" name="check_menus[]" />
<input type="checkbox" value="menu_gallery" name="check_menus[]" />
....
秘诀就是先更新所有VALUES(在本例中为0),由于只会发送检查的值,这意味着应该将获得的所有内容都设置为1,因此将获得的所有内容都设置为1。
示例是PHP,但适用于所有内容。
玩得开心 :)
<?php
if (isset($_POST['add'])) {
$nama = $_POST['name'];
$subscribe = isset($_POST['subscribe']) ? $_POST['subscribe'] : "Not Checked";
echo "Name: {$nama} <br />";
echo "Subscribe: {$subscribe}";
echo "<hr />";
}
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST" >
<input type="text" name="name" /> <br />
<input type="checkbox" name="subscribe" value="news" /> News <br />
<input type="submit" name="add" value="Save" />
</form>
在BS3中,您可以放
<?php
$checked="hola";
$exenta = $datosOrdenCompra[0]['exenta'];
var_dump($datosOrdenCompra[0]['exenta']);
if(isset($datosOrdenCompra[0]['exenta']) and $datosOrdenCompra[0]['exenta'] == 1){
$checked="on";
}else{
$checked="off";
}
?>
<input type="checkbox" id="exenta" name="exenta" <?php echo $checked;?> > <span class="label-text"> Exenta</span>
请注意的用法isset($datosOrdenCompra[0]['exenta'])
WordPress具有此checked()
功能。参考:https : //developer.wordpress.org/reference/functions/checked/
checked( mixed $checked, mixed $current = true, bool $echo = true )
说明比较前两个参数以及是否选中相同的标记
参数$ checked(混合)(必需)要比较的值之一
$ current(混合)(可选)(真)不只是真,要比较的其他值缺省值:真
$ echo(bool)(可选)是回显还是仅返回字符串默认值:true
返回#返回(字符串)html属性或空字符串
<?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']);
}
?>