需要实现省市联动,另外,如果已经选择了一个省市,从数据库提取数据之后,还需要默认到这个省市,并且这个省下面的市也需要全部出现在2级下拉菜单里,默认的是上次选的那个城市。

解决方案 »

  1.   

    在页面底部调用一个getCityByProvince(provinceId,cityId);
    的Js 方法此方法根据provinceId 读取城市信息,并显示在城市的下拉框里面
    然后根据cityId 选中城市。
      

  2.   

    一个二维数组存放市,一个一维数组存放省,省级变动了,将市的select重新初始化
      

  3.   

    <script type="text/javascript" language="javascript">
    var selects=[];
    selects[0]=new Array(
    new Option('城市','0'));
    selects['北京']=new Array(
    new Option('北京','北京'));
    selects['上海']=new Array(
    new Option('上海','上海'),
    new Option('嘉定','378'));
    selects['天津']=new Array(
    new Option('天津','天津'));
    selects['广东']=new Array(
    new Option('广州','广州'),
    new Option('深圳','深圳'),
    selects['福建']=new Array(
    new Option('福州','福州'),
    new Option('厦门','厦门'),
    new Option('漳州','漳州'));
    selects['海南']=new Array(
    new Option('海口','海口'),
    new Option('东方','东方'),
    new Option('儋州','儋州'));
    selects['安徽']=new Array(
    new Option('合肥','合肥'),
    new Option('蚌埠','蚌埠'),
    new Option('巢湖','巢湖'),
    new Option('池州','池州'),
    selects['贵州']=new Array(
    new Option('贵阳','贵阳'),
    new Option('安顺','安顺'),
    new Option('六盘水','六盘水'),
    new Option('遵义','遵义'));
    selects['甘肃']=new Array(
    new Option('兰州','兰州'),
    new Option('定西','定西'),
    selects['广西']=new Array(
    new Option('南宁','南宁'),
    new Option('北海','北海'),
    selects['河北']=new Array(
    new Option('石家庄','石家庄'),
    new Option('沧州','沧州'),
    new Option('承德','承德'),
    new Option('张家口','张家口'));
    selects['河南']=new Array(
    new Option('郑州','郑州'),
    new Option('安阳','安阳'),
    new Option('商丘','商丘'),
    selects['黑龙江']=new Array(
    new Option('哈尔滨','哈尔滨'),
    new Option('大庆','大庆'),
    new Option('鹤岗','鹤岗'),
    new Option('黑河','黑河'),
    new Option('鸡西','鸡西'),
    new Option('佳木斯','佳木斯'),
    new Option('牡丹江','牡丹江'),
    selects['湖北']=new Array(
    new Option('武汉','武汉'),
    new Option('黄冈','黄冈'),
    new Option('黄石','黄石'),
    new Option('荆门','荆门'),
    selects['湖南']=new Array(
    new Option('长沙','长沙'),
    new Option('常德','常德'),
    new Option('郴州','郴州'),
    new Option('衡阳','衡阳'),
    new Option('怀化','怀化'),
    new Option('张家界','张家界'));
    selects['吉林']=new Array(
    new Option('长春','长春'),
    new Option('白山','白山'),
    new Option('白城','白城'),
    selects['江苏']=new Array(
    new Option('南京','南京'),
    new Option('淮安','淮安'),
    new Option('连云港','连云港'),
    new Option('常州','常州'),
    selects['江西']=new Array(
    new Option('南昌','南昌'),
    new Option('赣州','赣州'),
    new Option('吉安','吉安'),
    selects['辽宁']=new Array(
    new Option('沈阳','沈阳'),
    new Option('本溪','本溪'),
    new Option('阜新','阜新'),
    selects['内蒙古']=new Array(
    new Option('呼和浩特','呼和浩特'),
    new Option('包头','包头'),
    selects['宁夏']=new Array(
    new Option('银川','银川'),
    new Option('石嘴山','石嘴山'),
    new Option('吴忠','吴忠'),
    new Option('中卫','中卫'),
    new Option('固原','固原'));
    selects['青海']=new Array(
    new Option('西宁','西宁'));
    selects['山东']=new Array(
    new Option('济南','济南'),
    new Option('德州','德州'),
    new Option('东营','东营'),
    new Option('菏泽','菏泽'),
    new Option('滨州','滨州'),
    new Option('济宁','济宁'),
    new Option('莱芜','莱芜'),
    new Option('聊城','聊城'),
    new Option('临沂','临沂'),
    new Option('淄博','淄博'));
    selects['山西']=new Array(
    new Option('太原','太原'),
    new Option('大同','大同'),
    new Option('阳泉','阳泉'),
    new Option('运城','运城'));
    selects['陕西']=new Array(
    new Option('西安','西安'),
    new Option('延安','延安'),
    new Option('榆林','榆林'));
    selects['四川']=new Array(
    new Option('成都','成都'),
    new Option('巴中','巴中'),
    new Option('南充','南充'),
    new Option('内江','内江'),
    new Option('攀枝花','攀枝花'),
    new Option('遂宁','遂宁'),
    new Option('雅安','雅安'),
    selects['西藏']=new Array(
    new Option('拉萨','拉萨'));
    selects['新疆']=new Array(
    new Option('乌鲁木齐','乌鲁木齐'),
    new Option('克拉玛依','克拉玛依'),
    new Option('昆明','昆明'),
    new Option('保山','保山'),
    new Option('昭通','昭通'));
    selects['浙江']=new Array(
    new Option('杭州','杭州'),
    new Option('湖州','湖州'),
    new Option('舟山','舟山'),
    new Option('衢州','衢州'));
    selects['重庆']=new Array(
    new Option('重庆','重庆'));
    function chsel(){
    if(document.all.pro.value) {
    document.all.city.options.length=0;
      //alert(selects[document.all.pro.value].length);
    for(var i=0;i<selects[document.all.pro.value].length;i++){
    document.all.city.add(selects[document.all.pro.value][i]);
     } } }
    </script>   <select name="pro" class="zuobj" id="pro" onchange='chsel();'>
                <option value="0">省份</option>
                <option value="河南">河南</option>
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="天津">天津</option>
                <option value="广东">广东</option>
                <option value="福建">福建</option>
                <option value="海南">海南</option>
                <option value="安徽">安徽</option>
                <option value="贵州">贵州</option>
                <option value="甘肃">甘肃</option>
                <option value="广西">广西</option>
                <option value="河北">河北</option>            
                <option value="黑龙江">黑龙江</option>
                <option value="湖北">湖北</option>
                <option value="湖南">湖南</option>
                <option value="吉林">吉林</option>
                <option value="江苏">江苏</option>
                <option value="江西">江西</option>
                <option value="辽宁">辽宁</option>
                <option value="内蒙古">内蒙古</option>
                <option value="宁夏">宁夏</option>
                <option value="青海">青海</option>
                <option value="山东">山东</option>
                <option value="山西">山西</option>
                <option value="陕西">陕西</option>
                <option value="四川">四川</option>
                <option value="西藏">西藏</option>
                <option value="新疆">新疆</option>
                <option value="云南">云南</option>
                <option value="浙江">浙江</option>
                <option value="重庆">重庆</option>
                </select>
      <select name="city" class="zbj" array="array" id="city">
                   <option value="城市">城市</option>
              </select>
    这样可以实现联动,但是没有办法保存从数据库里传过来的省市,没有办法默认,默认了省,市没有办法默认,省下面需要出来这个省的全部市。
      

  4.   

    楼上的挺详细了,楼主可以考虑使用ajax来实现多级联动
      

  5.   

    <select id="webid" onchange="changeNode()" style="width: 155px" >
    <option value="">&nbsp;--&nbsp;请选择查询节点&nbsp;--&nbsp;</option>
    <option value="shanghai">上海市</option>
    <option value="tianjin">天津市</option>
    <option value="zhejiang">浙江省</option>
    <option value="fujian">福建省</option>
    <option value="liaoning">辽宁省</option>
    <option value="hainan">海南省</option>
    <option value="hebei">河北省</option>
    <option value="guangxi">广西壮族自治区</option>
    <option value="shandong">山东省</option>
    <option value="jiangsu">江苏省</option>
    <option value="guangdong">广东省</option>
    </select><select id="subWebid" style="width: 155px">
    <option value="">&nbsp;--&nbsp;请选择查询设备&nbsp;--&nbsp;</option>
    </select>
    function changeNode()
    {
    var id = webid.options[webid.selectedIndex].value;
    var e = document.getElementById("subWebid");
    e.innerHTML="";
    e.options[e.options.length] = new Option(" -- 请选择查询设备 -- ","");
    if(id=="")
    {
    return;
    }
    xmltree.getSubNodes(id,function(data){//从后台拿数据,用$分割value和text
    if(data=="")return;
    var nodes = new Array();
    nodes = data.split(" ");
    for(var i=0;i<nodes.length-1;i++)
    {
    var node = nodes[i].split("$");
    e.options[e.options.length]=new Option(node[1],node[0]);
    }
    });

    }
      

  6.   

    写到cookie里,或者session。进来的时候读取一下。就行了