使用php验证复选框

使用php验证复选框,php,Php,我有一个表单,其中有一系列复选框,它们的名称都是“name=category[]”。现在我需要计算一个用户选择了多少复选框。此外,我需要选中至少1个复选框或最多10个复选框 这就是我目前正在尝试的方式 if ( isset ( $_POST['category']) { if (( sizeof( $_POST['category']) == 10 || sizeof( $_POST['category']) <= 10 )) { // form processing..

我有一个表单,其中有一系列复选框,它们的名称都是“name=category[]”。现在我需要计算一个用户选择了多少复选框。此外,我需要选中至少1个复选框或最多10个复选框

这就是我目前正在尝试的方式

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'])上面的代码不会进入内部其他部分。谢谢你的回答…但我对它感到困惑…请你用我的代码更新答案好吗?