城市三级联动

您现在的位置:

  

根据IP地址定位:IP接口文档

  

通过地区编码初始化设置

$('#demo').citys({code:350206});

  

通过地区名称初始化设置,并且下拉框值为地区名称

$('#demo1').citys({valueType:'name',province:'福建',city:'厦门',area:'思明'});

 

请选择地区

事件处理

$('#demo2').citys({
    required:false,
    nodata:'disabled',
    onChange:function(data){
        var text = data['direct']?'(直辖市)':'';
        $('#place').text('当前选中地区:'+data['province']+text+' '+data['city']+' '+data['area']);
    }
});

   

扩展显示行政区划第四级(街道)信息:

    var $town = $('#demo3 select[name="town"]');
    var townFormat = function(info){
    $town.hide().empty();
    if(info['code']%1e4&&info['code']<7e6){	//是否为“区”且不是港澳台地区
    	$.ajax({
    		url:'http://passer-by.com/data_location/town/'+info['code']+'.json',
    		dataType:'json',
    		success:function(town){
    			$town.show();
    			for(i in town){
    					$town.append('<option value="'+i+'">'+town[i]+'</option>');
    			}
    		}
    	});
    }
    };
    $('#demo3').citys({
        province:'福建',
        city:'厦门',
        area:'思明',
        onChange:function(info){
        	townFormat(info);
        }
    },function(api){
        var info = api.getInfo();
        townFormat(info);
    });

调用方法:

$(selector).citys(options,callback);

options参数

参数 默认值 说明
dataUrl [数据库地址]

最新数据库(2017年5月):JSON格式JSONP格式

数据库项目:中国行政区划(省、市、区、街道)

dataType 'json'

数据库类型:'json'或'jsonp'

IE9-由于默认安全设置,需开启“通过域访问数据源”才能跨域访问json,此类情况建议使用jsonp格式

provinceField 'province' 省份(省级)字段名
cityField 'city' 城市(地级)字段名
areaField 'area' 地区(县区级)字段名
valueType 'code' 下拉框值的类型,code行政区划代码,name地名
code 0 地区编码
province [无] 省份(省级),可以为地区编码或者名称
city [无] 城市(地级),可以为地区编码或者名称
area [无] 地区(县区级),可以为地区编码或者名称
required true 是否必须选中(是否自动选择地区)
nodata 'hidden' 当无数据时的表现形式:'hidden'隐藏,'disabled'禁用,为空不做任何处理
onChange [无] 地区切换时触发,回调函数传入地区信息:direct是否为直辖市,province省份(省级)名称,city城市(地级)名称,area地区(县区级)名称,code地区编码

callback(api)参数

方法 说明
getInfo(data) 获取当前选中的地区信息:direct是否为直辖市,province省份(省级)名称,city城市(地级)名称,area地区(县区级)名称,code地区编码
全球国家->省份/州->城市 数据表 国家表部分数据如下: SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for country -- ---------------------------- DROP TABLE IF EXISTS `country`; CREATE TABLE `country` ( `id` int(11) NOT NULL AUTO_INCREMENT, `country_code` varchar(100) NOT NULL DEFAULT '' COMMENT '国家代码', `country_name` varchar(100) NOT NULL DEFAULT '' COMMENT '英文国家名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=260 DEFAULT CHARSET=utf8mb4 COMMENT='国家表'; -- ---------------------------- -- Records of country -- ---------------------------- INSERT INTO `country` VALUES ('1', 'AX', 'Aland Island'); INSERT INTO `country` VALUES ('2', 'AL', 'Albania'); INSERT INTO `country` VALUES ('3', 'DZ', 'Algeria'); INSERT INTO `country` VALUES ('4', 'AS', 'American Samoa'); INSERT INTO `country` VALUES ('5', 'AD', 'Andorra'); INSERT INTO `country` VALUES ('6', 'AO', 'Angola'); INSERT INTO `country` VALUES ('7', 'AI', 'Anguilla'); INSERT INTO `country` VALUES ('8', 'AG', 'Antigua And Barbuda'); INSERT INTO `country` VALUES ('9', 'AR', 'Argentina'); INSERT INTO `country` VALUES ('10', 'AM', 'Armenia'); INSERT INTO `country` VALUES ('11', 'AW', 'Aruba'); INSERT INTO `country` VALUES ('12', 'XD', 'Ascension'); 省份表部分数据如下 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for province -- ---------------------------- DROP TABLE IF EXISTS `province`; CREATE TABLE `province` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '关联city表的province_id', `country_id` int(11) NOT NULL DEFAULT 0 COMMENT '国家id', `province_name` varchar(100) NOT NULL DEFAULT '' COMMENT '省份名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3836 DEFAULT CHARSET=utf8mb4 COMMENT='省份表'; -- ---------------------------- -- Records of province -- ---------------------------- INSERT INTO `province` VALUES ('1', '2', 'Berat'); INSERT INTO `province` VALUES ('2', '2', 'Bulqize'); INSERT INTO `province` VALUES ('3', '2', 'Diber'); INSERT INTO `province` VALUES ('4', '2', 'Delvine'); INSERT INTO `province` VALUES ('5', '2', 'Durres'); INSERT INTO `province` VALUES ('6', '2', 'Devoll'); INSERT INTO `province` VALUES ('7', '2', 'Elbasan'); INSERT INTO `province` VALUES ('8', '2', 'Kolonje'); INSERT INTO `province` VALUES ('9', '2', 'Fier'); INSERT INTO `province` VALUES ('10', '2', 'Gjirokaster'); INSERT INTO `province` VALUES ('11', '2', 'Gramsh'); INSERT INTO `province` VALUES ('12', '2', 'Has'); INSERT INTO `province` VALUES ('13', '2', 'Kavaje'); INSERT INTO `province` VALUES ('14', '2', 'Kurbin'); INSERT INTO `province` VALUES ('15', '2', 'Kucove'); INSERT INTO `province` VALUES ('16', '2', 'Korce'); 城市表部分数据如下: DROP TABLE IF EXISTS `city`; CREATE TABLE `city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `province_id` int(11) NOT NULL DEFAULT 0 COMMENT 'province表id', `city_name` varchar(100) NOT NULL DEFAULT '' COMMENT '城市名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=381115 DEFAULT CHARSET=utf8mb4 COMMENT='城市表'; -- ---------------------------- -- Records of city -- ---------------------------- INSERT INTO `city` VALUES ('1', '120', 'ROSARIO.DE LA FRONTERA'); INSERT INTO `city` VALUES ('2', '120', 'SALTA'); INSERT INTO `city` VALUES ('3', '120', 'TRES CERRITOS'); INSERT INTO `city` VALUES ('4', '120', 'ROSARIO.DE LA LERMA'); INSERT INTO `city` VALUES ('5', '120', 'CERRILLOS'); INSERT INTO `city` VALUES ('6', '120', 'C. QUIJANO'); INSERT INTO `city` VALUES ('7', '120', 'CAMPO SANTO'); INSERT INTO `city` VALUES ('8', '120', 'GENERAL.GUEMES'); INSERT INTO `city` VALUES ('9', '120', 'METAN'); INSERT INTO `city` VALUES ('10', '120', 'CARRERA'); INSERT INTO `city` VALUES ('11', '120', 'EL GALPON'); INSERT INTO `city` VALUES ('12', '120', 'AGUAS BLANCAS'); INSERT INTO `city` VALUES ('13', '120', 'ORAN'); INSERT INTO `city` VALUES ('14', '120', 'TABACAL'); INSERT INTO `city` VALUES ('15', '120', 'COLONIA SANTA ROSA'); INSERT INTO `city` VALUES ('16', '120', 'PICHANAL'); 关于中国的部分城市数据: INSERT INTO `city` VALUES ('41614', '640', 'Qinzhou'); INSERT INTO `city` VALUES ('41615', '640', 'Yulin'); INSERT INTO `city` VALUES ('41616', '640', 'Baise'); INSERT INTO `city` VALUES ('41617', '640', 'Hezhou'); INSERT INTO `city` VALUES ('41618', '640', 'Hechi'); INSERT INTO `city` VALUES ('41619', '640', 'Chongzuo'); INSERT INTO `city` VALUES ('41620', '640', 'Laibin'); INSERT INTO `city` VALUES ('41621', '641', 'Shaoguan'); INSERT INTO `city` VALUES ('41622', '641', 'Guangzhou'); INSERT INTO `city` VALUES ('41623', '641', 'Zhuhai'); INSERT INTO `city` VALUES ('41624', '641', 'Shenzhen'); INSERT INTO `city` VALUES ('41625', '641', 'Foshan'); INSERT INTO `city` VALUES ('41626', '641', 'Shantou'); INSERT INTO `city` VALUES ('41627', '641', 'Zhanjiang'); INSERT INTO `city` VALUES ('41628', '641', 'Jiangmen'); INSERT INTO `city` VALUES ('41629', '641', 'Zhaoqing'); INSERT INTO `city` VALUES ('41630', '641', 'Maoming'); INSERT INTO `city` VALUES ('41631', '641', 'Meizhou'); 关于中国部分省份数据如下: INSERT INTO `province` VALUES ('653', '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值