//显示结合项筛选选项 function user_ShowFieldandChange($ecms=0){ global $public_r,$class_r; //------- 函数参数设置开始 ----- //要显示的结合项字段列表,多个字段用半角逗号“,”隔开 if($myarea=$_GET['myarea']){ $fieldandvar='classid,myarea,myarea1,gq'; }else{ $fieldandvar='classid,myarea,gq'; } //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2 $fieldandval=array(); $ejld=include(ECMS_PATH.'e/extend/ejld/ejld.php'); $fieldandval['myarea']='<div class="fl key">所在地区:</div><div class="fl value"><ul class="clear-fix">|==|全国,'; $fieldandval['myarea1']='<ul class="secul clear-fix">|==|不限,'; $fieldandval['gq']='<div class="fl key">信息类型:</div><div class="fl value"> <ul class="clear-fix">|==|不限,'; $fieldandval['classid']='<div class="fl key">信息分类:</div><div class="fl value"><ul class="clear-fix">|==|不限,'; foreach($ejld as $k=>$v){ if($v['name']==$myarea){ $you=false; $jhcarea1=reppostvar($_GET['myarea1']); foreach($v['child'] as $kk=>$vv){ $fieldandval['myarea1'].='##'.$vv['name'].','.$vv['name']; if($vv['name']==$jhcarea1)$you=true; } } $fieldandval['myarea'].='##'.$v['name'].','.$v['name']; } if(!$you)unset($_GET['myarea1']); foreach($class_r as $v){ if($v['bclassid']==0){ $fieldandval['classid'].='##'.$v['classname'].','.$v['classid']; } } $jhcclassid=intval($_GET['classid']); $fieldandval['classid'].='##jhcad,'; foreach($class_r as $v){ if($v['bclassid']==$jhcclassid ||$v['islast']==1 && $v['bclassid']==$class_r[$jhcclassid][bclassid]){ $fieldandval['classid'].='##'.$v['classname'].','.$v['classid']; } } $fieldandval['gq'].='##求购,q##供应,g'; //正常链接样式 $fieldandcss=''; //已选的选项链接样式 $changefieldandcss='select'; //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符 $fieldexp='<div class="attr">|</ul></div><div class="clear"></div></div>'; $fieldexp1= $fieldexp; //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符 $valexp='|'; //------- 函数参数设置结束 ----- $userfunecmsver=function_exists('ehtmlspecialchars')?1:0; //附加参数 $urlcs='ph=1'; $mid=(int)$_GET['mid']; if($mid) { $urlcs.='&mid='.$mid; } if($_GET['classid']) { // $classid=RepPostVar($_GET['classid']); // $urlcs.='&classid='.$classid; } else { if(!$_GET['mid']&&!$_GET['ttid']&&!$_GET['ztid']) { // $classid=intval($GLOBALS['navclassid']); // $urlcs.='&classid='.$classid; } } if($_GET['ttid']) { $ttid=RepPostVar($_GET['ttid']); $urlcs.='&ttid='.$ttid; } if($_GET['ztid']) { $ztid=RepPostVar($_GET['ztid']); $urlcs.='&ztid='.$ztid; } if($_GET['firsttitle']) { $firsttitle=(int)$_GET['firsttitle']; $urlcs.='&firsttitle='.$firsttitle; } if($_GET['isgood']) { $isgood=(int)$_GET['isgood']; $urlcs.='&isgood='.$isgood; } if($_GET['endtime']) { $starttime=RepPostVar($_GET['starttime']); $endtime=RepPostVar($_GET['endtime']); $urlcs.='&starttime='.$starttime.'&endtime='.$endtime; } $line=(int)$_GET['line']; if($line) { $urlcs.='&line='.$line; } $tempid=(int)$_GET['tempid']; if($tempid) { $urlcs.='&tempid='.$tempid; } if($_GET['orderby']) { $orderby=RepPostVar($_GET['orderby']); $myorder=(int)$_GET['myorder']; $urlcs.='&orderby='.$orderby.'&myorder='.$myorder; } //间隔字符 //$fieldexpr=explode('|',$fieldexp); $valexpr=explode('|',$valexp); //输出选项 $fr=explode(',',$fieldandvar); $fcount=count($fr); $allstr=''; $urladd=$urlcs; foreach($fr as $field){ if($_GET[$field]) { $getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES); $urladd.='&'.$field.'='.urlencode($getval); } } for($i=0;$i<$fcount;$i++) { $fieldexp= $fieldexp1; $field=$fr[$i]; if($myarea){ if($field=='myarea'){ $fieldexp='<div class="attr">|</ul>'; } if($field=='myarea1'){ $fieldexp=' |</ul></div><div class="clear"></div></div>'; } } $fieldexpr=explode('|',$fieldexp); //选项链接 $getval=''; if($_GET[$field]) { $getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES); //$urladd.='&'.$field.'='.urlencode($getval); } $myurladd=preg_replace('/&'.$field.'=[^&]+/i','',$urladd); if($field=='myarea')$myurladd=preg_replace('/&myarea1=[^&]+/i','',$myurladd); //选项说明 $vsayr=explode('|==|',$fieldandval[$field]); //选项内容 $valallstr=''; $vr=explode('##',$vsayr[1]); $vcount=count($vr); for($vi=0;$vi<$vcount;$vi++) { $vtr=explode(',',$vr[$vi]); if($getval==$vtr[1]) { $css=' class="'.$changefieldandcss.'" '; } else { $css=''; } if($vtr[0]=='jhcad'){ $valallstr.='</ul><ul class="secul clear-fix">'; }else{ $valallstr.="<li{$css}>".'<a href="'.$public_r['newsurl'].'e/action/ListInfo.php?'.$myurladd.'&'.$field.'='.urlencode($vtr[1]).'">'.$vtr[0].'</a></li>'; } } $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1]; } return $allstr; }
涉及到各种技巧,classid 的摆放,省市二级联动。各种繁复的判断,头都大了。保留备忘。