复选框在手工写的过程,发现一个个写太麻烦了,于是写了个组件,我背后的框架是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.='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 = '
';
echo $str;
}