售价: 150元 联系qq 110102296
问题的提出:
[求助]做一个联动筛选,有偿服务
需要做一个筛选功能,三级地区联动 华东 华南 华北 西南 西北 东北 华东:福建 上海 江西 安徽 山东 江苏 浙江 福建:福州 厦门 莆田 泉州 漳州 龙岩 三明 南平 宁德 实现指定栏目 实现全站筛选 筛选链接伪静态 如 数字模式 www.xxx.com/shaixuan/1-1-1.html 字母模式 www.xxx.com/shaixuan/huadong-fujian-fuzhou.html 有能力的师兄加QQ:2165731 感谢jiuhecai 的技术支持,开发速度很快,很强大 已开发完毕,欢迎围观。 http://diguo72.zhongyf.com/news/ |
使用说明:
三级联动 by QQ110102296
定制 QQ2165731
日期 2017-12-28
1.数据字段的建立
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 字段 daqu 大区 char(20) 单行文本框
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js" ></script>
<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
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这个函数拷贝进去就可以。
......(代码省略。有需要朋友加qq110102296饲料)
进化过程:
1.第一次
1.1 不能筛选县级
字符串处理不严格导致,已经修正
1.2 分页不对
page1函数后的处理,没有增加县级,已经修正
1.3 不能全站筛选
强制使用系统模型和列表模板后,正常。
第二次 2018年1月10日 客户反馈同一环境下,新建的网站无法筛选出数据,解决方法见下:
// 参数为24的时候,把get数据从数字格式还原为汉字格式以适应帝国处理。
if($ecms==24){
//print_r($_GET);exit;
$_GET['tempid']=1; //此处根据需要修改,为列表模板id
$_GET['mid']=1; //此处根据需要修改,为系统模型id
$_GET['ph']=1; //此处保持不变