ajax加载json三级联动-省市县

    基于jquery实现

js

        var selectCon = [
	{"id" : "#countryID","name" : "国家"}, 
	{"id" : "#provinceID","name" : "省份"}, 
	{"id" : "#cityID","name" : "城市"}, 
	{"id" : "#countyID","name" : "地区"} 
	];
	/**	移除全部选择项内容,并添加默认提示信息,参数selectCon的下标*/
	function removeOption() {
		var id = "";
		var option = "";
		for ( var i = 0; i < arguments.length; i++) {
			id = selectCon[arguments[i]].id;
			option = id + " option";
			$(option).remove();
			$(id).append(
					"<option value=''>请选择" + selectCon[arguments[i]].name
							+ "</option>");
		}
	};
	/**	追加选择项内容,参数:要添加的jqueryId,行政区域父id*/
	function addOption(jqueryId, parentId) {
		if (!parentId) {
			return;
		}
		var url = "${pageContext.request.contextPath}/district/getDistricte.do";
		$.post(url, {
			"parentId" : parentId
		}, function(jsonString) {
			var size = jsonString.length;
			var option = "";
			for ( var i = 0; i < size; i++) {
				option += "<option value='"+jsonString[i].id+"'>"
						+ jsonString[i].name + "</option>";
			}
			$(jqueryId).append(option);
			//console.log(option);
		});
	};

	//国家-省
	$("#countryID").change(function() {
		var parentId = $("#countryID option:selected").val();
		removeOption(1, 2, 3);
		addOption("#provinceID", parentId);
	});
	//省份-城市
	$("#provinceID").change(function() {
		var parentId = $("#provinceID option:selected").val();
		removeOption(2, 3);
		addOption("#cityID", parentId);
	});
	//城市-区域
	$("#cityID").change(function() {
		var parentId = $("#cityID option:selected").val();
		removeOption(3);
		addOption("#countyID", parentId);
	});

html产品可见地区:
<select id="countryID">
<option value="">请选择国家</option>
<option value="1">中国</option>
</select>
<select id="provinceID"><option value="">请选择省份</option></select>
<select id="cityID"><option value="">请选择城市</option></select>
<select id="countyID"><option value="">请选择地区</option></select>

    返回的格式示例:

[
    {
        "id": 3,
        "parentId": 2,
        "code": "110100",
        "name": "北京市辖区"
    },
    {
        "id": 18,
        "parentId": 2,
        "code": "110200",
        "name": "\n县"
    }
]

CREATE TABLE `tb_district` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) DEFAULT NULL, COMMENT '父id'
  `code` varchar(6) NOT NULL DEFAULT '' COMMENT '行政编码',
  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '行政名称',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uni_district_code` (`code`),
  KEY `parent_id` (`parent_id`),
) ENGINE=InnoDB AUTO_INCREMENT=3515 DEFAULT CHARSET=utf8 COMMENT='行政编码表';


转载于:https://my.oschina.net/u/817904/blog/659616

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值