php组件 生成复选框传值数组

复选框在手工写的过程,发现一个个写太麻烦了,于是写了个组件,我背后的框架是thinkphp所以调用函数用$this

数据传值的方式是name=price[] 这样提交的一组复选数值,传递到php端就是一个array 方便处理

//判断一个复选框是否被选中了
  private function ischecked($arr,$v0){
    foreach ($arr as $key => $v) {
        if($v==$v0)return 'checked';
    }
    return '';
  }
 
  //生成一组复选框的html代码
  private function checkboxString($Arr,$name,$reqArr){
      $pCheckbox = ''; //价格标签
    foreach ($Arr as $k => $v) {
      $pCheckbox.='<input style="margin-left:10px" type=checkbox value="'.$k.'" name="'.$name.'[]" '.$this->ischecked($reqArr,$k).' />'.$v;
    }
    return $pCheckbox;
  }
 
  //判定一个单选框是否被选中了
  private function isSelected($v,$v1){
    if($v==$v1)return 'checked';
    return '';
  }
 
  //判断是否一个数字在被选择的组内。
	private function Judge($Arr,$num){
	  if(!$Arr)return true;
	   foreach ($Arr as $k => $v) {
	       $ab = explode("-", $v);
	       $a = intval($ab[0]);
	       $b = intval($ab[1]);
	       if($num>=$a && $num<=$b )return true;
	     }
	  return false;
	}
 
 
 
//调用代码
public function index(){
	$price = $_GET['price'];
 
 
	if($this->Judge($price,9)==true){
		echo 'price is 9, is true';
	}else{
		echo 'price is 9, is false';
	}
  //复选框组合代码
    $priceTag = array('0-10'=>'0-10' ,'11-20'=>'11-20','21-30'=>'21-30','30-999'=>' > 30');
    $priceStr = $this->checkboxString($priceTag,'price',$price);
 
    $str = '<form action="/Home/Test/index.html">
    price:
    '.$priceStr.'
     <br />
    <input type="submit" value="submit">
    </form>';
 
    echo $str;
}

效果


This entry was posted in PHP and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/checkbox-php/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

  

  

About Me

静水流深,水滴石穿