• ADADADADAD

    帝国cms结合控制变量实现结合项筛选功能带首字母筛选的方法推荐[ 建站问答 ]

    建站问答 时间:2025-04-25 08:01:51

    作者:文/会员上传

    简介:

    说到结合项筛选,官方已有提供一种方法,但是的话就是比较繁琐,下面介绍用控制变量来实现这个功能,这个带首字母筛选的。重点修改前;先备份,先备份,先备份。
    内容有的多,优点是配置好

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    说到结合项筛选,官方已有提供一种方法,但是的话就是比较繁琐,下面介绍用控制变量来实现这个功能,这个带首字母筛选的。

    重点修改前;先备份,先备份,先备份。
    内容有的多,优点是配置好后,后面添加修改比较方便。
    1:在系统变量里面,添加一个变量-变量的值-多个用逗号隔开; 这里的值就是后面要筛选的筛选名称如图:

    2:在数据表推荐两个要适用到的字段,分别是选项字段和控制变量里面的变量名一致;字母筛选的话随便都可以: 在添加字段要修改 输入表单替换html代码,必须先默认提交在回来来修改,才会生效如图:

    首字母的话 直接添加默认即可。

    下面部分是输入表单显示元素,复选框,单选框和下拉的表单替换html代码。
    复选框代码

    <?$p_screen=explode(",",$public_r['add_screen']); for($i=0;$i<count($p_screen);$i++) {$j=$i+1;?><input name="screen[]" type="checkbox" value="<?=$j?>"<?=strstr($r[screen],"|".$j."|")?' checked':''?>><?=$p_screen[$i]?><?}?>

    单选框的写法

    <?$p_screen=explode(",", $public_r['add_screen']);for($i=0; $i<count($p_screen); $i++) { $j = $i+1;?><input name="screen" type="radio" value="<?=$j?>"<?= $r['screen'] == (string)$j ? ' checked' : ''?>><?=$p_screen[$i]?><? } ?>

    下拉选择

    <?$j=0;$p_diqu=explode(",",$public_r['add_xiala']); for($i=0;$i<count($p_diqu);$i++) {$j=$i+1;$diqu_selected='';if ($r[diqu]==$j){$diqu_selected=' selected';}$diqu.='<option value="'.$j.'"'.$diqu_selected.'>'.$p_diqu[$i].'</option>';}?><select name="xiala" id="xiala"><?=$diqu?></select>

    2-1:添加好字段后要在-系统模型-修改里面,把字段项选择上,尤其筛选项必须选择-然后点录入表单模板
    ( 自动生成表单模板) 提交;

    3:在eclassuserfun.php搭建下面的代码:字段和变量名填写自己开始写哪个。

    function user_screen($id){ global $public_r; $pd_record=explode(",",$public_r['add_screen']); return $pd_record[$id-1];}

    4:在模板里面调用
    4-1:首页和内容或其他栏目可以这样写:

    <? $p_ticai=explode(",",$public_r['add_screen']); for($i=0;$i<count($p_ticai);$i++) { $j=$i+1;?> <li><a href="/list-1-<?=$j?>-0-0-0"><?=$p_screen[$i]?></a></li><? }?>

    4-2:在列表里面这样写,首页为了方便修改可以单独建一个列表模板:
    列表模板的最开始这样写:

    <?$classid=(int)$GLOBALS[navclassid];$screen=(int)$_GET['screen'];$zm=$_GET['zm']?$_GET['zm']:'0';$orderby=(int)$_GET['orderby'];$ticaitile=user_screen($screen);?>

    然后需要显示的地方:

    <dt>筛选:</dt> <li><a<?if (!$screen){?> class="active"<?}?> href="/list-<?=$classid?>-0-<?=$zm?>-<?=$orderby?>-0">全部</a></li><? $p_screen=explode(",",$public_r['add_screen']); for($i=0;$i<count($p_screen);$i++) { $j=$i+1;?> <li><a<?if ($screen==$j){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$j?>-<?=$zm?>-<?=$orderby?>-0"><?=$p_screen[$i]?></a></li><? }?>

    字母筛选代码:

    <dt>字 母:</dt> <li><a<?if (!$zm){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$screen?>-0-<?=$orderby?>-0" >全部</a></li><? $p_zm=explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"); for($i=0;$i<count($p_zm);$i++) {?> <li><a<?if ($zm==$p_zm[$i]){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$screen?>-<?=$p_zm[$i]?>-<?=$orderby?>-0"><?=$p_zm[$i]?></a></li><? }?>

    这个包括了选择后的高亮状态 active元素 这个样式自行写即可。

    5:标题的调用和优化;可以按照这样来写:

    <title><?=$ticaitile?>-[!--list.pageno--]<?=$public_r['add_name']?></title>

    6:分页的样式和修改:eclassconnect.php搜索 //前台分页 注释或删除,然后换成下面的样式按照原模板来改即可;

    //前台分页 列表结合项分页样式function page1($num,$line,$page_line,$start,$page,$search){ global $fun_r; $num=(int)$num; $line=(int)$line; $page_line=(int)$page_line; $start=(int)$start; $page=(int)$page; $classid=(int)$GLOBALS[navclassid]; $screen=(int)$_GET['screen']; $infozm=$_GET['zm']?$_GET['zm']:'0'; $orderby=(int)$_GET['orderby']; if($num<=$line) { return ''; } $search=''; $url='/list-'.$classid.'-'.$screen.'-'.$zm.'-'.$orderby; $snum=2;//最小页数 $totalpage=ceil($num/$line);//取得总页数 //$firststr='<a title="'.$fun_r['trecord'].'">&nbsp;<b>'.$num.'</b> </a>'; //上一页 if($page<>0) { $toppage='<li><a href="'.$url.'-0'.$search.'"><<</a></li>'; $pagepr=$page-1; $prepage='<li><a href="'.$url.'-'.$pagepr.$search.'"><</a></li>'; } //下一页 if($page!=$totalpage-1) { $pagenex=$page+1; $nextpage='<li><a href="'.$url.'-'.$pagenex.$search.'">></a></li>'; $lastpage='<li><a href="'.$url.'-'.($totalpage-1).$search.'">>></a></li>'; } $starti=$page-$snum<0?0:$page-$snum; $no=0; for($i=$starti;$i<$totalpage&&$no<$page_line;$i++) { $no++; if($page==$i) { $is_1='<a href="'.$url.'-'.$i.$search.'" class="active">'; $is_2="</a>"; } else { $is_1='<li><a href="'.$url.'-'.$i.$search.'">'; $is_2="</a></li>"; } $pagenum=$i+1; $returnstr.=$is_1.$pagenum.$is_2; } $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage; return $returnstr;}

    最后一步就是伪静态的配置:这里解释一下:List.php文件放到根目录下/e/action/ 不会冲突直接复制即可(已打包自行下载)

    list.zip
    bc63f35549e1fd75fdae611c9f789933.zip(3.29 KB)

    内容加载中..
    热门标签: 结合项筛选功能