您的位置:首页 > Web前端 > JavaScript

javascript三级联动select

2007-03-12 16:27 337 查看
数据库结构:

   省份{编号,名称}:sheng{ID,sheng}
   城市{编号,所属省份,名称}:shi{ID,shengID,shi}
   区域{编号,所属城市,名称}:qu{ID,shiID,qu}

ASP代码:

<!--#include file="conn.asp"-->
<script language="javascript">
    var city=new Array();
    var area=new Array();
    var i=0;
    
    //存储所有城市名称,可以从数据库读出。Array("所属ID","ID","名称");
    <%set rsc=server.CreateObject("adodb.recordset")
    rsc.open "select * from shi",conn,1,1
    for i=0 to rsc.recordcount-1
    %>city[<%=i%>]=new Array("<%=rsc("shengid")%>","<%=rsc("id")%>","<%=rsc("shi")%>");
    <%
        rsc.movenext
    next
    set rsc=nothing
    %>
    //存储所有区域名称,可以从数据库读出。Array("所属ID","ID","名称");
    <%set rsa=server.CreateObject("adodb.recordset")
    rsa.open "select * from qu",conn,1,1
    for i=0 to rsa.recordcount-1
    %>area[<%=i%>]=new Array("<%=rsa("shiid")%>","<%=rsa("id")%>","<%=rsa("qu")%>");
    <%
        rsa.movenext
    next
    set rsa=nothing
    %>
    //改变省份时候创建城市选项
    function chgprovince(ID){
        document.f1.s2.length=0;
        document.f1.s2.options[0]=new Option("--请选择--","0");
        document.f1.s3.length=0;
        document.f1.s3.options[0]=new Option("--请选择--","0");
        for(i=0;i<city.length;i++){
            if(city[i][0]==ID){
                document.f1.s2.options[document.f1.s2.length]=new Option(city[i][2],city[i][1]);
            }
        }    
    }
    
    //改变城市时候创建区域选项
    function chgcity(ID){
        document.f1.s3.length=0;
        document.f1.s3.options[0]=new Option("--请选择--","0");
        for(i=0;i<area.length;i++){
            if(area[i][0]==ID){
                document.f1.s3.options[document.f1.s3.length]=new Option(area[i][2],area[i][1]);
            }
        }    
    }
</script>
<form id="f1" name="form1" method="post" action="">
  <select name="s1" onchange="chgprovince(this.value);">
    <!--第一级直接给出,或从数据库读出。 -->
    <option value="0">--请选择--</option>
    <%set rsp=server.CreateObject("adodb.recordset")
    rsp.open "select * from sheng",conn,1,1
    for i=0 to rsp.recordcount-1
    %><option value="<%=rsp("id")%>"><%=rsp("sheng")%></option>
    <%
        rsp.movenext
    next
    set rsp=nothing
    %>
  </select>
  <select name="s2" onchange="chgcity(this.value);">
    <option value="0">--请选择--</option>    
  </select>
  <select name="s3">
    <option value="0">--请选择--</option>    
  </select>
</form>

 

运行生成的HTML代码:

<script language="javascript">
    var city=new Array();
    var area=new Array();
    var i=0;
    
    //存储所有城市名称,可以从数据库读出。Array("所属ID","ID","名称");
 
10bdf
   city[0]=new Array("1","1","南宁");
    city[1]=new Array("1","2","梧州");
    city[2]=new Array("2","3","广州");
    city[3]=new Array("3","4","长沙");
    
    //存储所有区域名称,可以从数据库读出。Array("所属ID","ID","名称");
    area[0]=new Array("1","1","朗东");
    area[1]=new Array("1","2","西乡塘");
    area[2]=new Array("3","3","天河");
    area[3]=new Array("3","4","海珠");
    area[4]=new Array("3","5","从化");
    
    //改变省份时候创建城市选项
    function chgprovince(ID){
        document.f1.s2.length=0;
        document.f1.s2.options[0]=new Option("--请选择--","0");
        document.f1.s3.length=0;
        document.f1.s3.options[0]=new Option("--请选择--","0");
        for(i=0;i<city.length;i++){
            if(city[i][0]==ID){
                document.f1.s2.options[document.f1.s2.length]=new Option(city[i][2],city[i][1]);
            }
        }    
    }
    
    //改变城市时候创建区域选项
    function chgcity(ID){
        document.f1.s3.length=0;
        document.f1.s3.options[0]=new Option("--请选择--","0");
        for(i=0;i<area.length;i++){
            if(area[i][0]==ID){
                document.f1.s3.options[document.f1.s3.length]=new Option(area[i][2],area[i][1]);
            }
        }    
    }
</script>
<form id="f1" name="form1" method="post" action="">
  <select name="s1" onchange="chgprovince(this.value);">
    <!--第一级直接给出,或从数据库读出。 -->
    <option value="0">--请选择--</option>
    <option value="1">广西</option>
    <option value="2">广东</option>
    <option value="3">湖南</option>
    <option value="4">湖北</option>
    
  </select>
  <select name="s2" onchange="chgcity(this.value);">
    <option value="0">--请选择--</option>    
  </select>
  <select name="s3">
    <option value="0">--请选择--</option>    
  </select>
</form>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息