用Ajax实现二级联动

<html>
<head>
  <script type="text/javascript">


   //Ajax实现下拉框二级级联,根据第一个下拉框的值改变第二个下拉框内的列表

   //根据浏览器的类型,创建xmlHttpRequest对象
   function createXmlHttpRequest()
    {
        if(window.ActiveXObject)
        {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if( window.XMLHttpRequest())
        {
            return new XMLHttpRequest();
        }   
    }
    var xmlHttpRequest;
 
    //异步响应函数
    function search(para)
    {
        var url="/search?para="+para;     //后台请求的路径
     
        xmlHttpRequest=createXmlHttpRequest();
     
        xmlHttpRequest.onreadystatechange=callback;   //将回调函数注册给状态改变事件
     
        xmlHttpRequest.open("GET",url,true);
     
        xmlHttpRequest.send(null);
         
    }   
  
   //回调函数
    function callback()
    {    
         var dlCity=document.getElementById("city");



         //请求被成功响应,已接收到结果
         if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200)
         {                   
             var result=xmlHttpRequest.responseText;          //返回的结果字符串
             //var result = "哈尔滨|大庆||鹤岗|佳木斯|牡丹江";
                       
            var cityArray= result.split("|");   //返回的结果字符串中,值之间是以|分隔的,所以先拆分成数组
            var count = cityArray.length;
            dlCity.length=0;   //先将下拉列表框清空
            for (var i = 0; i <count; i++)
            {  
                dlCity.options.add(new Option(cityArray[i], cityArray[i]));   //将结果循环添加到下拉列表中
            } 
          
         }
         else
         {
             dlCity.length=0;
             dlCity.options.add(new Option("请等待...","-1"));
         }
       
    }
   
//下拉框改变事件
function changeCityOptions()
{
     var dlProvince=document.getElementById("province");
     var dlCity=document.getElementById("city");
     dlCity.length=0;
     if(dlProvince.value==-1)
     {   
         dlCity.options.add(new Option("城市列表","-1"));
     }
     else
     {
         search(dlProvince.value);
     }
    return;  
}
  </script>
</head>
<body>
<select name="province"  id="province" οnchange="changeCityOptions()">
  <option value="-1">选择省份</option>

  <option value="1">黑龙江</option>

  <option value="2">吉林</option>
</select>
<select name="city" id="city">
  <option value="-1">城市列表</option>
</select>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值