原先论坛有人发过1.02及1.03的版本,但整合方法不知道是有意还是无意,很多人搞了不成功,这里提供更新的1.04版本整合方法,并且把utf8转成了gbk的,以方便大家。(附件里有UTF8的原版,一并提供)
1、把附件里build-gbk文件中的data_china.js和selects.js拷到/d/js目录下准备调用。
2、管理会员字段-增加如下三个字段:
字段名:pro 标识:地区(省) 输入及投稿表单替换html代码都填:<select name="pro"></select>
字段名:city 标识:地区(市) 输入及投稿表单替换html代码都填:<select name="city"></select>
字段名:area 标识:地区(县) 输入及投稿表单替换html代码都填:<select name="area"></select>
其他采用系统默认设置即可
重要:修改新增加的这三个字段,你会看到输入及投稿表单替换html代码内容已经不是上面填写的内容了,需要重新修改改为上述内容即可,很多人不成功问题就出在这里(你可以改完再回去看有没有变化,没变化就对了)。
以下参照tlerbao网友的教程,我也不费力写了,没有错误了照搬就是,不过我加了地区默认,下面代码是没有设置默认地区的,没有的大家自己参照修改自己需要的默认地区吧,原文 http://bbs.phome.net/ShowThread/?threadid=65662&forumid=13
第三步,管理系统模型 - 修改该系统模型 - 把刚才新添加的三个字段设置为录入项等属性,并且勾选自动生成表单模版,录入和投稿都要选。
第四步,还是修改系统模型 ,这时候把下面已经生成的录入表单模版代码复制出来到你习惯的编辑器中编辑,比如DW或Editplus,在顶部增加JS调用代码,这时候就是要调用从build文件中提取的JS文件,你是不是已经放到你的站点目录了呢,那么记住你的路径,添加如下代码:
- <script type="text/javascript" src="/d/js/js/selects.js"></script>
- <script type="text/javascript" src="/d/js/js/data_china.js"></script>
然后在代码尾部增加如下代码,这是一段PHP代码+JS代码,用来判断是添加信息还是编辑信息的,添加信息的时候显示请选择地区,那么编辑信息的时候当然要读取数据库中已经添加的地区设置喽。
第五步,将代码粘贴回去,然后提交,从此以后千万不能再勾选自动生成表单模版了,不然你还要重新修改,提交完成。
- <?
- if(empty($addr[pro]))
- {
- ?>
- <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);
- //设置默认值
- </script>
- <?
- }
- else
- {
- ?>
- <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($addr[pro]))?>'});
- s.selected(c,{value:'<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($addr[city]))?>'});
- s.selected(a,{text:'<?=$ecmsfirstpost==1?"":htmlspecialchars(stripSlashes($addr[area]))?>'});
- </script>
- <?
- }
- ?>