帝国CMS7.2实现地区三级联动并且前台可地区筛选的教程
2018-03-26 站长 站长日志
帝国CMS的三级联动一直是个痛,以前一流资源网站长有分享过一篇“帝国CMS可自定义数据的三级联动选择功能教程”非常好用,
今天再分享一款 三级联动代码,同样可以自定义数据,并且附上前台根据三级地区筛选的功能示例代码:
第一步:
后台添加三个数据表字段
字段名:pro 字段标识:省 输入表单替换html代码:
1 |
<select name= "pro" ></select>
|
字段名:city 字段标识:市 输入表单替换html代码:
1 |
<select name= "city" ></select>
|
字段名:area 字段标识:县 输入表单替换html代码:
1 |
<select name= "area" ></select>
|
第二步:
建立完毕后,在到 管理系统模型 修改生成相应的表单!
三个字段设为 提交项 可添加 修改 列表显示 结合项
第三步:
打开e/admin/AddNews.php
把以下代码粘贴到 结尾的随便位置即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<script type= "text/javascript" src= "selects.js" ></script>
<script type= "text/javascript" src= "data_china.js" ></script>
<script type= "text/javascript" >
var s = selects;
//获取对象
var p = document.getElementsByName( 'pro' )[0]; //省
var c = document.getElementsByName( 'city' )[0]; //市
var a = document.getElementsByName( 'area' )[0]; //区
//绑定数据
s.bind(p,province);
s.bind(c,city);
s.bind(a,area);
//确定从属关系
s.parent(p,c);
s.parent(c,a);
//设置默认值
s.selected(p,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[pro]))?>' });
s.selected(c,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[city]))?>' });
s.selected(a,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[area]))?>' });
</script>
|
第四步:
下载附件两个JS上传到e/admin/ JS为UTF-8编码,其他请自己转码
到此后台已经实现添加内容三级联动
在前台显示位置添加一下代码可筛选查
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<script type= "text/javascript" src= "[!--news.url--]js/selects.js" ></script>
<script type= "text/javascript" src= "[!--news.url--]js/data_china.js" ></script>
<form method= "get" action= "[!--news.url--]e/action/ListInfo.php" >
<input value= "10" type= "hidden" name= "mid" >
<input value= "17" type= "hidden" name= "classid" >
<input value= "1" type= "hidden" name= "ph" >
<input value= "12" type= "hidden" name= "tempid" >
<select name= "pro" ></select>
<select name= "city" ></select>
<select name= "area" ></select>
<INPUT value= "确定" type= "submit" name= "提交" >
</FORM>
<script type= "text/javascript" >
var s = selects;
//获取对象
var p = document.getElementsByName( 'pro' )[0]; //省
var c = document.getElementsByName( 'city' )[0]; //市
var a = document.getElementsByName( 'area' )[0]; //区
//绑定数据
s.bind(p,province);
s.bind(c,city);
s.bind(a,area);
//确定从属关系
s.parent(p,c);
s.parent(c,a);
//设置默认值
s.selected(p,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[pro]))?>' });
s.selected(c,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[city]))?>' });
s.selected(a,{value: '<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($r[area]))?>' });
</script>
|
注意两个JS路径
住:四个默认字段mid是模型ID,classid是栏目ID,tempid是列表所使用的模板标签ID,ph是结合项,ph参数是必须等于1的,表示使用结合项,否则不能筛选
JS代码下载: