destoon城市地区两级联动

 DestoonCMS   高蒙   阅读(1551)   评论(0)   2015-12-29 15:19:31    destoon 城市地区两级联动 destoon两级联动 


在制作destoon模板的时候,遇到调用地区两级联动,本来是想自己找个插件的。可是仔细一想,还是采用destoon系统内置的方法实现城市地区两级联动。经过自己仔细的研究终于找到了如何实现的方法,下面记录下来,便于以后查阅和复习。

一、php文件中的处理。

1)、在处理文件 *.inc.php 里面引入系统函数文件:
 
require DT_ROOT.'/include/post.func.php';


文件地址 include/post.func.php 

二、前台模版的调用。

1)、在网站的头部引入下面的3个js文件。
 
<script type="text/javascript" src="{DT_STATIC}file/script/config.js"></script>

<script type="text/javascript" src="{DT_STATIC}file/script/jquery.js"></script>

<script type="text/javascript" src="{DT_STATIC}file/script/common.js"></script>
 
2)、在需要调用的地方,插入下面的调用代码。
 
select表单代码: {ajax_area_select('post[areaid]', '请选择', 0,'class=pro')}
 
完成上面的步骤就可以完成城市地区的两级联动功能了,下面是简单的看下php中调用的函数。
 
ajax_area_select()函数是在post.func.php里面,主要使用的函数如下:
 
function ajax_area_select($name = 'areaid', $title = '', $areaid = 0, $extend = '', $deep = 0) {
global $area_id;
if($area_id) {
$area_id++;
}else{
$area_id = 1;
}
$areaid = intval($areaid);
$deep = intval($deep);
$select = '';
$select .= '<input name="'.$name.'" id="areaid_'.$area_id.'" type="hidden" value="'.$areaid.'"/>';
$select .= '<div id="load_area_'.$area_id.'">'.get_area_select($title, $areaid, $extend, $deep, $area_id).'</div>';
$select .= '<script type="text/javascript">';
if($area_id == 1) $select .= 'var area_title = new Array;';
$select .= 'area_title['.$area_id.']=\''.$title.'\';';
if($area_id == 1) $select .= 'var area_extend = new Array;';
$select .= 'area_extend['.$area_id.']=\''.$extend.'\';';
if($area_id == 1) $select .= 'var area_areaid = new Array;';
$select .= 'area_areaid['.$area_id.']=\''.$areaid.'\';';
if($area_id == 1) $select .= 'var area_deep = new Array;';
$select .= 'area_deep['.$area_id.']=\''.$deep.'\';';
$select .= '</script>';
if($area_id == 1) $select .= '<script type="text/javascript" src="'.DT_STATIC.'file/script/area.js"></script>';
return $select;
}

 
function get_area_select($title = '', $areaid = 0, $extend = '', $deep = 0, $id = 1) {
global $db;
$parents = array();
if($areaid) {
$r = $db->get_one("SELECT child,arrparentid FROM {$db->pre}area WHERE areaid=$areaid");
$parents = explode(',', $r['arrparentid']);
if($r['child']) $parents[] = $areaid;
} else {
$parents[] = 0;
}
$select = '';
foreach($parents as $k=>$v) {
if($deep && $deep <= $k) break;
$v = intval($v);
$select .= '<select onchange="load_area(this.value, '.$id.');" '.$extend.'>';
if($title) $select .= '<option value="0">'.$title.'</option>';
$result = $db->query("SELECT areaid,areaname FROM {$db->pre}area WHERE parentid=$v ORDER BY listorder,areaid ASC");
while($a = $db->fetch_array($result)) {
$selectid = isset($parents[$k+1]) ? $parents[$k+1] : $areaid;
$selected = $a['areaid'] == $selectid ? ' selected' : '';
$select .= '<option value="'.$a['areaid'].'"'.$selected.'>'.$a['areaname'].'</option>';
}
$select .= '</select> ';
}
return $select;
}

通过以上几个步骤就可以很轻松的在网站任意位置,使用城市地区两级联动的功能了。




相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客