js全国、省、市三级联动



         最近做某***市联通vip项目,需要用到绿色通道这个东西,自己参照网上的例子写了一个js的三级联动

function cn(){
    this.Items = {};
}
cn.prototype.add = function(id,iArray){
    this.Items[id] = iArray;
}
cn.prototype.Exi = function(id){
    if(typeof(this.Items[id]) == "undefined"){return false;}
    return true;
}


function chg(v){
    if(v==3){return;}
    var str="0";
    for(i=0;i<v;i++){str+=("_"+(document.getElementById(s[i]).selectedIndex))};


    var ss=document.getElementById(s[v]);
    with(ss){
        length = 0;    //清理掉option
        if(a_t.Exi(str)){
            ar=a_t.Items[str];
            for(i=0;i<ar.length;i++){
                options[length]=new Option(ar[i],ar[i]);
                if(ar[i]==o[v]){options[i].selected=true;}//如果列表内包含初始项目则默认选中
            }
        }
        if(++v<s.length){chg(v);}
    }
}




var s=["type1","type2","type3"];
var o=["全国","安徽","安庆"];




function setup(){
    for(i=1;i<=3;i++){
        document.getElementById(s[(i-1)]).onchange=new Function("chg("+(i)+")");
    }
    chg(0);
}


var a_t = new cn();


a_t.add("0",["全国","**","营业厅"]);


a_t.add("0_0",["安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","天津","西藏","新疆","云南","浙江"]);
a_t.add("0_0_0",["安庆","蚌埠","巢湖","池州","滁州","阜阳","合肥","淮北","淮南","黄山","六安","马鞍山","宿州","铜陵","芜湖","宣城","亳州"]);
a_t.add("0_0_1",["北京"]);
a_t.add("0_0_2",["重庆"]);
a_t.add("0_0_3",["福州","龙岩","南平","宁德","莆田","泉州","三明","厦门","漳州"]);
a_t.add("0_0_4",["白银","定西","甘南藏族自治州","嘉峪关","金昌","酒泉","兰州","临夏回族自治州","陇南","平凉","庆阳","天水","武威","张掖"]);
a_t.add("0_0_5",["潮州","东莞","佛山","广州","河源","深圳","阳江","云浮","湛江","肇庆","中山","珠海"]);
a_t.add("0_0_6",["百色","北海","崇左","防城港","桂林","贵港","河池","贺州","来宾","柳州","南宁","钦州","梧州","玉林"]);
a_t.add("0_0_7",["安顺","毕节","贵阳","六盘水","黔东南苗族侗族自治州","黔南布依族苗族自治州","黔西南布依族苗族自治州","铜仁","遵义"]);
a_t.add("0_0_8",["澄迈县","定安县","东方","海口",,"琼中黎族苗族自治县","三亚","屯昌县","万宁","文昌","五指山","儋州"]);
a_t.add("0_0_9",["保定","沧州","承德","邯郸","衡水","廊坊","秦皇岛","石家庄","唐山","邢台","张家口"]);
a_t.add("0_0_10",["安阳","鹤壁","济源","焦作","开封","洛阳","南阳","平顶山","三门峡","商丘","新乡","信阳","许昌","郑州","周口","驻马店","漯河","濮阳"]);
a_t.add("0_0_11",["大庆","大兴安岭","哈尔滨","鹤岗","黑河","鸡西","佳木斯","牡丹江","七台河","齐齐哈尔","双鸭山","绥化","伊春"]);
a_t.add("0_0_12",["鄂州","恩施土家族苗族自治州","黄冈","黄石","荆门","荆州","潜江","神农架林区","十堰","随州","天门","武汉","仙桃","咸宁","襄樊","孝感","宜昌"]);
a_t.add("0_0_13",["常德","长沙","郴州","衡阳","怀化","娄底","邵阳","湘潭","湘西土家族苗族自治州","益阳","永州","岳阳","张家界","株洲"]);
a_t.add("0_0_14",["白城","白山","长春","吉林","辽源","四平","松原","通化","延边朝鲜族自治州"]);
a_t.add("0_0_15",["常州","淮安","连云港","南京","南通","苏州","宿迁","泰州","无锡","徐州","盐城","扬州","镇江"]);
a_t.add("0_0_16",["抚州","赣州","吉安","景德镇","九江","南昌","萍乡","上饶","新余","宜春","鹰潭"]);
a_t.add("0_0_17",["鞍山","本溪","朝阳","大连","丹东","抚顺","阜新","葫芦岛","锦州","辽阳","盘锦","沈阳","铁岭","营口"]);
a_t.add("0_0_18",["阿拉善盟","巴彦淖尔盟","包头","赤峰","鄂尔多斯","呼和浩特","呼伦贝尔","通辽","乌海","乌兰察布盟","锡林郭勒盟","兴安盟"]);
a_t.add("0_0_19",["固原","石嘴山","吴忠","银川"]);
a_t.add("0_0_20",["果洛藏族自治州","海北藏族自治州","海东","海南藏族自治州","海西蒙古族藏族自治州","黄南藏族自治州","西宁","玉树藏族自治州"]);
a_t.add("0_0_21",["滨州","德州","东营","菏泽","济南","济宁","莱芜","聊城","临沂","青岛","日照","泰安","威海","潍坊","烟台","枣庄","淄博"]);
a_t.add("0_0_22",["长治","大同","晋城","晋中","临汾","吕梁","朔州","太原","忻州","运城","阳泉"]);
a_t.add("0_0_23",["安康","宝鸡","汉中","商洛","铜川","渭南","西安","咸阳","延安","榆林"]);
a_t.add("0_0_24",["上海"]);
a_t.add("0_0_25",["天津"]);
a_t.add("0_0_26",["阿里","昌都","拉萨","林芝","那曲","日喀则","山南"]);
a_t.add("0_0_27",["乌鲁木齐","石河子","克拉玛依","伊犁","巴音郭勒","昌吉","克孜勒苏柯尔克孜","博尔塔拉","吐鲁番","哈密","喀什","和田","阿克苏"]);
a_t.add("0_0_28",["昆明","大理","曲靖","玉溪","昭通","楚雄","红河","文山","思茅","西双版纳","保山","德宏","丽江","怒江","迪庆","临沧"]);
a_t.add("0_0_29",["杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水"]);


a_t.add("0_1",["**"]);
a_t.add("0_1_0",["**"]);


a_t.add("0_2",["营业厅"]);
a_t.add("0_2_0",["营业厅"]);


jsp代码部分如下:

 <script type="text/javascript" src="js/threeSelect.js"></script>
<body onload="setup()">
  <select  id="type1" name="road.type1"  ></select>
    <select  id="type2" name="road.type2"></select>
    <select  id="type3" name="road.type3"  ></select>


android端


String province[]=new String[]{"安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西"  ,"陕西","上海","天津","西藏","新疆","云南","浙江"};

String list[][] = new String[][]{
			 {"安庆","蚌埠","巢湖","池州","滁州","阜阳","合肥","淮北","淮南","黄山","六安","马鞍山","宿州","铜陵","芜湖","宣城","亳州"}, 
			 {"北京"},
			 {"重庆"},
			 {"福州","龙岩","南平","宁德","莆田","泉州","三明","厦门","漳州"},
	{"白银","定西","甘南藏族自治州","嘉峪关","金昌","酒泉","兰州","临夏回族自治州","陇南","平凉","庆阳","天水","武威","张掖"},
	{"潮州","东莞","佛山","广州","河源","深圳","阳江","云浮","湛江","肇庆","中山","珠海"},
	{"百色","北海","崇左","防城港","桂林","贵港","河池","贺州","来宾","柳州","南宁","钦州","梧州","玉林"},
	{"安顺","毕节","贵阳","六盘水","黔东南苗族侗族自治州","黔南布依族苗族自治州","黔西南布依族苗族自治州","铜仁","遵义"},
	{"澄迈县","定安县","东方","海口","琼中黎族苗族自治县","三亚","屯昌县","万宁","文昌","五指山","儋州"},
	{"保定","沧州","承德","邯郸","衡水","廊坊","秦皇岛","石家庄","唐山","邢台","张家口"},
	{"安阳","鹤壁","济源","焦作","开封","洛阳","南阳","平顶山","三门峡","商丘","新乡","信阳","许昌","郑州","周口","驻马店","漯河","濮阳"},
	{"大庆","大兴安岭","哈尔滨","鹤岗","黑河","鸡西","佳木斯","牡丹江","七台河","齐齐哈尔","双鸭山","绥化","伊春"},
	{"鄂州","恩施土家族苗族自治州","黄冈","黄石","荆门","荆州","潜江","神农架林区","十堰","随州","天门","武汉","仙桃","咸宁","襄樊","孝感","宜昌"},
	{"常德","长沙","郴州","衡阳","怀化","娄底","邵阳","湘潭","湘西土家族苗族自治州","益阳","永州","岳阳","张家界","株洲"},
	{"白城","白山","长春","吉林","辽源","四平","松原","通化","延边朝鲜族自治州"},
	{"常州","淮安","连云港","南京","南通","苏州","宿迁","泰州","无锡","徐州","盐城","扬州","镇江"},
	{"抚州","赣州","吉安","景德镇","九江","南昌","萍乡","上饶","新余","宜春","鹰潭"},
	{"鞍山","本溪","朝阳","大连","丹东","抚顺","阜新","葫芦岛","锦州","辽阳","盘锦","沈阳","铁岭","营口"},
	{"阿拉善盟","巴彦淖尔盟","包头","赤峰","鄂尔多斯","呼和浩特","呼伦贝尔","通辽","乌海","乌兰察布盟","锡林郭勒盟","兴安盟"},
	{"固原","石嘴山","吴忠","银川"},
	{"果洛藏族自治州","海北藏族自治州","海东","海南藏族自治州","海西蒙古族藏族自治州","黄南藏族自治州","西宁","玉树藏族自治州"},
	{"滨州","德州","东营","菏泽","济南","济宁","莱芜","聊城","临沂","青岛","日照","泰安","威海","潍坊","烟台","枣庄","淄博"},
	{"长治","大同","晋城","晋中","临汾","吕梁","朔州","太原","忻州","运城","阳泉"},
{"安康","宝鸡","汉中","商洛","铜川","渭南","西安","咸阳","延安","榆林"},
	{"上海"},
	{"天津"},
	{"阿里","昌都","拉萨","林芝","那曲","日喀则","山南"},
	{"乌鲁木齐","石河子","克拉玛依","伊犁","巴音郭勒","昌吉","克孜勒苏柯尔克孜","博尔塔拉","吐鲁番","哈密","喀什","和田","阿克苏"},
	{"昆明","大理","曲靖","玉溪","昭通","楚雄","红河","文山","思茅","西双版纳","保山","德宏","丽江","怒江","迪庆","临沧"},
	{"杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水"}};
Bundle getValue=GreenCityActivity.this.getIntent().getExtras();
					for(int k = 0 ;k<=list.length ;k++)
					{
					if(getValue.getInt("greenProvinceId")==k)
					{					
					try {
						
					for(int i=0;i<list[k].length;i++)
					{
						JSONObject jsonObject=new JSONObject();
					
							jsonObject.put("greenCityName",list[k][i]);
						jsonArray.put(jsonObject);
					}
					} catch (JSONException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					}
					}



String list[][] = new String[][]{
{"安庆","蚌埠","巢湖","池州","滁州","阜阳","合肥","淮北","淮南","黄山","六安","马鞍山","宿州","铜陵","芜湖","宣城","亳州"}, 
{"北京"},
{"重庆"},
{"福州","龙岩","南平","宁德","莆田","泉州","三明","厦门","漳州"},
{"白银","定西","甘南藏族自治州","嘉峪关","金昌","酒泉","兰州","临夏回族自治州","陇南","平凉","庆阳","天水","武威","张掖"},
{"潮州","东莞","佛山","广州","河源","深圳","阳江","云浮","湛江","肇庆","中山","珠海"},
{"百色","北海","崇左","防城港","桂林","贵港","河池","贺州","来宾","柳州","南宁","钦州","梧州","玉林"},
{"安顺","毕节","贵阳","六盘水","黔东南苗族侗族自治州","黔南布依族苗族自治州","黔西南布依族苗族自治州","铜仁","遵义"},
{"澄迈县","定安县","东方","海口","琼中黎族苗族自治县","三亚","屯昌县","万宁","文昌","五指山","儋州"},
{"保定","沧州","承德","邯郸","衡水","廊坊","秦皇岛","石家庄","唐山","邢台","张家口"},
{"安阳","鹤壁","济源","焦作","开封","洛阳","南阳","平顶山","三门峡","商丘","新乡","信阳","许昌","郑州","周口","驻马店","漯河","濮阳"},
{"大庆","大兴安岭","哈尔滨","鹤岗","黑河","鸡西","佳木斯","牡丹江","七台河","齐齐哈尔","双鸭山","绥化","伊春"},
{"鄂州","恩施土家族苗族自治州","黄冈","黄石","荆门","荆州","潜江","神农架林区","十堰","随州","天门","武汉","仙桃","咸宁","襄樊","孝感","宜昌"},
{"常德","长沙","郴州","衡阳","怀化","娄底","邵阳","湘潭","湘西土家族苗族自治州","益阳","永州","岳阳","张家界","株洲"},
{"白城","白山","长春","吉林","辽源","四平","松原","通化","延边朝鲜族自治州"},
{"常州","淮安","连云港","南京","南通","苏州","宿迁","泰州","无锡","徐州","盐城","扬州","镇江"},
{"抚州","赣州","吉安","景德镇","九江","南昌","萍乡","上饶","新余","宜春","鹰潭"},
{"鞍山","本溪","朝阳","大连","丹东","抚顺","阜新","葫芦岛","锦州","辽阳","盘锦","沈阳","铁岭","营口"},
{"阿拉善盟","巴彦淖尔盟","包头","赤峰","鄂尔多斯","呼和浩特","呼伦贝尔","通辽","乌海","乌兰察布盟","锡林郭勒盟","兴安盟"},
{"固原","石嘴山","吴忠","银川"},
{"果洛藏族自治州","海北藏族自治州","海东","海南藏族自治州","海西蒙古族藏族自治州","黄南藏族自治州","西宁","玉树藏族自治州"},
{"滨州","德州","东营","菏泽","济南","济宁","莱芜","聊城","临沂","青岛","日照","泰安","威海","潍坊","烟台","枣庄","淄博"},
{"长治","大同","晋城","晋中","临汾","吕梁","朔州","太原","忻州","运城","阳泉"},
{"安康","宝鸡","汉中","商洛","铜川","渭南","西安","咸阳","延安","榆林"},
{"上海"},
{"天津"},
{"阿里","昌都","拉萨","林芝","那曲","日喀则","山南"},
{"乌鲁木齐","石河子","克拉玛依","伊犁","巴音郭勒","昌吉","克孜勒苏柯尔克孜","博尔塔拉","吐鲁番","哈密","喀什","和田","阿克苏"},
{"昆明","大理","曲靖","玉溪","昭通","楚雄","红河","文山","思茅","西双版纳","保山","德宏","丽江","怒江","迪庆","临沧"},
{"杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水"}};

Bundle getValue=GreenCityActivity.this.getIntent().getExtras();
for(int k = 0 ;k<=list.length ;k++)
{
if(getValue.getInt("greenProvinceId")==k)
{
try {

for(int i=0;i<list[k].length;i++)
{
JSONObject jsonObject=new JSONObject();

jsonObject.put("greenCityName",list[k][i]);
jsonArray.put(jsonObject);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


你可能感兴趣的:(js全国、省、市三级联动)