帝国 三级联动 筛选
前端显示1.数据字段的建立后台 -- 系统 -- 数据表与系统模型 --- 管理数据表 -- 表名称(选择要修改增加) -- 管理字段 -- 增加
演示网站
http://diguo72.zhongyf.com/news/
前端显示
1.数据字段的建立
后台 -- 系统 -- 数据表与系统模型 --- 管理数据表 -- 表名称(选择要修改增加) -- 管理字段 -- 增加字段
在 输入表单替换html代码、投稿表单替换html代码 处填入代码
1.1 字段 daqu 大区 char(20) 单行文本框
<input name="daqu" type="text" id="daqu" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[daqu]))?>" size="" readonly="readonly">1.2 字段 sheng 省份 char(20) 单行文本框
<input name="sheng" type="text" id="sheng" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[sheng]))?>" size="" readonly="readonly">1.3 字段 shi 地市 char(20) 单行文本框
<input name="shi" type="text" id="shi" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[shi]))?>" size="" readonly="readonly">1.4 字段 xian 县区 char(20) 单行文本框
<script src="//cdn.staticfile.org/jquery/3.2.1/jquery.min.js" ></script><!-- 备份Js /e/extend/liandong/jquery.min.js -->
<input name="xian" type="text" id="xian" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[xian]))?>" size="" readonly="readonly">
<input type="button" id="qyxz" value="区域选择" >
<div id="xuan" style="display:none;width:100%;height:200px;z-index:100;" >
<style type="text/css">
.shaixuan li{float:left;width: 60px;list-style:none;}
.selected{font-weight:bold; background: #999; color:#fff;}
.queding{margin:20px 10px 0 100px ;}
.queding button{margin:0px 20px 0 20px ;}
</style>
<ul class="shaixuan" id="daqu1"><li>大区:</li></ul><div style="clear:both;"></div>
<ul class="sheng shaixuan" id="sheng1"></ul><div style="clear:both;"></div>
<ul class="shi shaixuan" id="shi1"></ul><div style="clear:both;"></div>
<ul class="xian shaixuan" id="xian1"></ul><div style="clear:both;"></div>
<div class="queding"><button type="button">确定</button><button type="button">取消</button></div>
</div>
<script src="/e/extend/liandong/xuan.js" ></script>
说明: 重点在1.4 其中的css部分可以调整到统一的css文件中。如果已经引用了jquery,则第一个js引用可以去掉。
后台文章调用
后台 -- 系统 -- 数据表与系统模型 --- 管理数据表 -- 表名称(选择要修改增加) -- 管理系统模型 -- 修改
系统模型设置
2.伪静态规则
.htaccess
RewriteEngine on
RewriteRule ^shaixuan/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ /e/action/ListInfo.php?classid=$1&page=$2&daqu=$3&sheng=$4&shi=$5&xian=$6
Nginx
rewrite ^/shaixuan/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ /e/action/ListInfo.php?classid=$1&page=$2&daqu=$3&sheng=$4&shi=$5&xian=$6;
3.调用方法
列表类模板 需要筛选的地方,输入 <?=shaixuan();?> 即可。
4.修改和新增的文件
4.1在e/extend/中新增文件夹liandong ,包含三个文件,分别是:
- diqu.php ------ 行政区划数据文件。有地区名称比较长的,需要简写的话,在这个文件里搜索替换就可以。
- xuan.js ------ js文件,后台辅助输入调用的
- xxuan.php ----- 应答xuan.js 的
4.2修改的文件
第一个是 e/action/lisfinfo.php --- 可以覆盖系统原来的
第二个是 e/class/userfun.php -- 增加了一个函数。一般这个文件里有别的函数,不要覆盖,把下面shaixuan这个函数拷贝进去就可以。
以下是需要增加在 userfun.php 的代码
//shaixuan
function shaixuan($ecms=0){
global $public_r,$navclassid,$yGET;
$daqur=array("不限","华北","东北","东南","中南","西南","西北");//jhc 此处根据需要可以修改
$classid=intval($yGET['classid']);
if(!$classid)$classid=$navclassid;
if(!$classid)$classid=0;
$page=0;
$daqu=intval($yGET['daqu']);
$sheng=intval($yGET['sheng']);
$shi=intval($yGET['shi']);
$xian=intval($yGET['xian']);
// 参数为24的时候,把get数据从数字格式还原为汉字格式以适应帝国处理。
if($ecms==24){
//print_r($_GET);exit;
$_GET['tempid']=1; //此处根据需要修改 jiuhecai
$_GET['mid']=1;
$_GET['ph']=1;
if(!$classid)unset($_GET['classid']);
$_GET['daqu']=$daqur[$daqu];
if($daqu==0)unset($_GET['daqu']);
//shi
include('../extend/liandong/diqu.php');
foreach($mapr as $k=>$v){
if(substr($k,0,2)==$sheng && substr($k,2,4)=="0000"){
$_GET['sheng']=$v;
break;
}
}
if($sheng==0)unset($_GET['sheng']);
//shi
foreach($mapr as $k=>$v){
if(substr($k,0,2)==$sheng && substr($k,2,2)==$shi && substr($k,4,2)=='00'){
$_GET['shi']=$v;
break;
}
}
if($shi==0)unset($_GET['shi']);
//xian
foreach($mapr as $k=>$v){
if(substr($k,0,2)==$sheng && substr($k,2,2)==$shi && substr($k,4,2)==$xian){
$_GET['xian']=$v;
break;
}
}
if($xian==0)unset($_GET['xian']);
return true;
}
// 段落中添加的css,可以统一放到css文件
$jieguo=<<<jhc
<style type="text/css">
.shaixuan li{float:left;width: 60px;list-style:none;}
</style>
jhc;
//显示大区分类
$jieguo.='<ul class="shaixuan"><li>大区:</li>';
foreach($daqur as $k=>$v){
$cur=$daqu==$k?"<b>$v</b>":$v;
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$k-0-0-0".'.html">'.$cur.'</a></li>';
}
$jieguo.='</ul><div style="clear:both;"></div>';
if($daqu==0)return $jieguo;
//根据大区选择省份
$jieguo.='<ul class="shaixuan"><li>省份:</li>';
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-0-0-0".'.html">不限</a></li>';
include('../extend/liandong/diqu.php');
foreach($mapr as $k=>$v){
if(substr($k,0,1)==$daqu && substr($k,2,4)=="0000"){
$cur=$sheng==substr($k,0,2)?"<b>$v</b>":$v;
$cursheng=substr($k,0,2);
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-$cursheng-0-0".'.html">'.$cur.'</a></li>';
}
}
$jieguo.='</ul><div style="clear:both;"></div>';
if($sheng==0)return $jieguo;
//根据省份选择区市
$jieguo.='<ul class="shaixuan"><li>区市:</li>';
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-$sheng-0-0".'.html">不限</a></li>';
foreach($mapr as $k=>$v){
if(substr($k,0,2)==$sheng && substr($k,4,2)=="00" && substr($k,2,4)<>"0000"){
$cur=$shi==substr($k,2,2)?"<b>$v</b>":$v;
$curshi=substr($k,2,2);
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-$sheng-$curshi-0".'.html">'.$cur.'</a></li>';
}
}
$jieguo.='</ul><div style="clear:both;"></div>';
if($shi==0)return $jieguo;
//根据区市选择县
$jieguo.='<ul class="shaixuan"><li>县:</li>';
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-$sheng-$shi-0".'.html">不限</a></li>';
foreach($mapr as $k=>$v){
if(substr($k,0,2)==$sheng && substr($k,2,2)==$shi && substr($k,4,2)<>"00"){
$cur=$xian==substr($k,4,2)?"<b>$v</b>":$v;
$curxian=substr($k,4,2);
$jieguo.='<li><a href="/shaixuan/'."$classid-$page-$daqu-$sheng-$shi-$curxian".'.html">'.$cur.'</a></li>';
}
}
$jieguo.='</ul>';
return $jieguo;
}
说明下,代码中的
$_GET['tempid']=1; //此处根据需要修改 jiuhecai
$_GET['mid']=1;
分别用以指定模板id和模型id,可以根据需要修改。
进化记录
1.第一次
1.1 不能筛选县级
字符串处理不严格导致,已经修正
1.2 分页不对
page1函数后的处理,没有增加县级,已经修正
1.3 不能全站筛选
强制使用系统模型和列表模板后,正常
相关文章
-
无相关信息