在PHP中,如何查看所有复选框是否为空?这是我的代码的摘录: 基本上,我想使用“if”和“else”代码,专门用于取消选中所有复选框时。
$titlebox=isset($_GET['title']) ? "checked='checked'" : '';
$authorbox=isset($_GET['author']) ? "checked='checked'" : '';
// keeps checkboxes checked after submit
<form action="" method="get">
<input type="text" name="search">
<input type="submit" value="Search">
<input type="checkbox" name="title" '.$titlebox.' >
<label for="title">Title</label>
<input type="checkbox" name="author" '.$authorbox.' >
<label for="author">Author</label>
</form>
// form
if (isset($_GET['title']))
{ $searchbooktitle = $bookfieldtitle;
}
else
{ $searchbooktitle = NULL;
};
// this is how I get individual checkboxes.
最后一部分展示了我如何获得单独的复选框,但如何获取所有复选框并查看它们是否为空?我想使用特定的“if”和“else”代码,只有在未选中所有复选框时才会严格应用。
答案可能很简单,但我是新手并且很困惑。请帮忙!
答案 0 :(得分:4)
您可以使用以下语法将复选框作为数组发布:
<input type="checkbox" name="data[]" value="title"/>
<input type="checkbox" name="data[]" value="author"/>
在你的PHP中:
if (count($_GET['data']) == 0) {
// nothing set
} else {
// something is set
if (in_array('author', $_GET['data']) {
//author is selected
}
// (...)
}
答案 1 :(得分:0)
我最终使用下面的代码,该代码完全正常,无需重写我的表单和任何其他代码。
if ((!isset($_GET['title'])) && (!isset($_GET['author'])) && (!isset($_GET['series'])) && (!isset($_GET['year'])) && (!isset($_GET['isbn'])) && (!isset($_GET['tags'])) && (!isset($_GET['description'])))
{ $searchbookdefault = $bookfieldtitle;
}
else
{ $searchbookdefault = NULL;
};
答案 2 :(得分:0)
这可能会对您有所帮助:
<form name="search_field" id="search_field" action="formpage.php" method="post" >
<ul>
<li><input type="checkbox" name="day[]" value="mon"/>Monday</li>
<li><input type="checkbox" name="day[]" value="tue"/>Tueday</li>
<li><input type="checkbox" name="day[]" value="wed"/>Wednesday</li>
<li><input type="checkbox" name="day[]" value="thr"/>Thursday</li>
<li><input type="checkbox" name="day[]" value="fri"/>Friday</li>
<li><input type="checkbox" name="day[]" value="sat"/>Saturday</li>
<li><input type="checkbox" name="day[]" value="sun"/>Sunday</li>
</ul>
<input type="submit" id="submit" name="submit" />
</form>
您可以从中获得工作结果(为了更好地理解):
<form name="search_field" id="search_field" action="formpage.php" method="post" >
<?php if(!$_POST == ''){ ?>
<ul>
<li><input type="checkbox" <?php if(in_array("mon", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="mon"/>Monday</li>
<li><input type="checkbox" <?php if(in_array("tue", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="tue"/>Tueday</li>
<li><input type="checkbox" <?php if(in_array("wed", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="wed"/>Wednesday</li>
<li><input type="checkbox" <?php if(in_array("thr", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="thr"/>Thursday</li>
<li><input type="checkbox" <?php if(in_array("fri", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="fri"/>Friday</li>
<li><input type="checkbox" <?php if(in_array("sat", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="sat"/>Saturday</li>
<li><input type="checkbox" <?php if(in_array("sun", $_POST['day'])) {?> checked="checked"<?php } ?> name="day[]" value="sun"/>Sunday</li>
</ul>
<input type="submit" id="submit" name="submit" />
</form>
<?php
print_r($_POST);
?>
<?php } else { ?>
<form name="search_field" id="search_field" action="formpage.php" method="post" >
<ul>
<li><input type="checkbox" name="day[]" value="mon"/>Monday</li>
<li><input type="checkbox" name="day[]" value="tue"/>Tueday</li>
<li><input type="checkbox" name="day[]" value="wed"/>Wednesday</li>
<li><input type="checkbox" name="day[]" value="thr"/>Thursday</li>
<li><input type="checkbox" name="day[]" value="fri"/>Friday</li>
<li><input type="checkbox" name="day[]" value="sat"/>Saturday</li>
<li><input type="checkbox" name="day[]" value="sun"/>Sunday</li>
</ul>
<input type="submit" id="submit" name="submit" />
</form>
<?php } ?>
只需创建formpage.php文件,粘贴上面的代码并检查结果。