使用php验证复选框
我有一个表单,其中有一系列复选框,它们的名称都是“name=category[]”。现在我需要计算一个用户选择了多少复选框。此外,我需要选中至少1个复选框或最多10个复选框 这就是我目前正在尝试的方式使用php验证复选框,php,Php,我有一个表单,其中有一系列复选框,它们的名称都是“name=category[]”。现在我需要计算一个用户选择了多少复选框。此外,我需要选中至少1个复选框或最多10个复选框 这就是我目前正在尝试的方式 if ( isset ( $_POST['category']) { if (( sizeof( $_POST['category']) == 10 || sizeof( $_POST['category']) <= 10 )) { // form processing..
if ( isset ( $_POST['category']) {
if (( sizeof( $_POST['category']) == 10 || sizeof( $_POST['category']) <= 10 )) {
// form processing....
} else {
echo 'Atleast 1, not more than 10 categories.';
}
} else {
echo 'Please select atleast one category.';
}
if(isset($\u POST['category'])){
在处理输入数组时,如果((sizeof($\u POST['category'])==10 | | sizeof($\u POST['category'])),最好检查它是数组还是isset:
if (isset($_POST['category']) && is_array($_POST['category'])) {
$totalChecked = count($_POST['category']);
if ($totalChecked >= 1 && $totalChecked <= 10) {
// form processing....
} else {
echo 'Atleast 1, not more than 10 categories.';
}
} else {
echo 'Please select atleast one category.';
}
if(isset($\u POST['category'])和&is_数组($\u POST['category'])){
$totalChecked=计数($_POST['category']);
如果根据您的问题($totalChecked>=1&&$totalChecked,您只想检查选中的复选框计数
据我所知,复选框的值为“开”或“关”。如果您要对名称“类别”进行计数,则无论单击或未单击,都会显示页面上显示的所有复选框计数
所以把它过滤掉,数一数
将此功能置于if条件启动之前。
格式化代码
function nonzero($var) {
return $var !="off" ? "on" :'';
}
if ( isset ( $_POST['category']) {
$_POST['category'] = array_filter($_POST['category'], 'nonzero');
if ( sizeof( $_POST['category'] ) >= 1 //check of at-least one is checked
&& sizeof( $_POST['category'] ) <= 10 ) { //check for at-most 10 is checked
form processing();
} else {
echo 'At-least 1, not more than 10 categories.';
}
} else {
echo 'Please select at-least one category.';
}
函数非零($var){
返回$var!=“关”?“开”:“”;
}
如果(isset($_POST['category']){
$_POST['category']=数组_过滤器($_POST['category'],'nonzero');
如果(sizeof($\u POST['category'])>=1//至少检查一个
&&sizeof($\u POST['category'])count($\u POST['category'])?sizeof($\u POST['category'])上面的代码不会进入内部其他部分。谢谢你的回答…但我对它感到困惑…请你用我的代码更新答案好吗?