sisian
- 凋谢是真实的,盛开只是一种过去。
Mysql 数据表设计 CREATE TABLE IF NOT EXISTS `areas` (
`area_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT COMMENT '地区id',
`parent_id` smallint(6) unsigned NOT NULL DEFAULT '0' COMMENT '地区父id',
`area_name` varchar(120) NOT NULL DEFAULT '' COMMENT '地区名称',
`area_type` tinyint(1) NOT NULL DEFAULT '2' COMMENT '地区类型 0:country,1:province,2:city,3:district',
PRIMARY KEY (`area_id`),
KEY `parent_id` (`parent_id`),
KEY `area_type` (`area_type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
Controller控制器public function getprovince(){//获取省市 也就是area_type字段值等于1的记录
$area=M('Areas');
$list=$area->where('area_type=1')->select();
$this->assign('province',$list);
$this->display();
}public function returnCity(){//获取当前省市下的城市 也就是area_type字段值等于2的记录
$province_id = I('get.cityId/d');
$model = M('Areas');
$arrCity = $model->field('area_id,area_name')->where("parent_id={$province_id}")->select();
$a = array();
foreach($arrCity as $key=>$v){//转成DWZ所识别的格式
$a = array(0=>$v,1=>$v);
}
echo json_encode($a);//输出json格式数据
}
模板
所有省市
{$vo.area_name}
所有城市
ref 属性则是为了做级联定义的,ref所指向的则是当前combox值改变成引起联动的下一级combox,ref用下一级combox的id属性来赋值。
要获取县区的方法和获取城市的方法类似
SQL文件下载地址 链接:http://pan.baidu.com/s/1geA1pjP 密码:nkil
如果大家有不清楚的地方可以在下边留言