你的省市区是不是是在三个文本框中的阿?先把你想实现的具体功能说下,这样才能帮你写!你这个我觉得用SQL语句就可以实现的1

解决方案 »

  1.   

    1、三个下拉列表,分别是省、市、区,其中省一开始就已经初始化,其他两个空着
    2、省的ONCHANGE事件触发,读取当前省下面的市,对OPTIONS进行操作,初始市列表
    3、市的ONCHANGE事件触发,读取省、市条件下的区,对OPTIONS进行操作,初始区列表
    注意:每取一个的时候,把得到的列表用数组或者其他方式存在变量里,这样已经取过的就不用再到服务器端取了
      

  2.   

    1、三个下载列表框,按顺序一级——二级——三级
    <asp:dropdownlist id="DDL_Root" runat="server"></asp:dropdownlist>
    <asp:dropdownlist id="DDL_Trunk" runat="server"></asp:dropdownlist>
    <asp:dropdownlist id="DDL_Leaf" runat="server"></asp:dropdownlist>2、绑定第一个
    //给一级、二级添加单击事件
    DDL_Root.Attributes.Add("onchange","load(this.options[this.selectedIndex].value,'DDL_Trunk','DDL_Leaf')");DDL_Trunk.Attributes.Add("onchange","load(this.options[this.selectedIndex].value,'DDL_Leaf','')");
    //绑定第一个控件
    if(Ds==null)
    {
    SqlDataAdapter APP_Ada=new SqlDataAdapter("Psp_ShowPopedomMenu "+Request.Cookies["AdminId"].Value,APP_SqlDb.SqlConn);
    Ds=new DataSet("Menu");
    APP_Ada.Fill(Ds,"Tree");
    }
    DataView Dv=Ds.Tables["Tree"].DefaultView;
    Dv.RowFilter="i_ParentCode=0";
    DDL_Root.DataSource=Dv;
    DDL_Root.DataTextField="vc_TreeName";
    DDL_Root.DataValueField="i_Id";
    DDL_Root.DataBind();//隐藏二级、三级控件
    Td_Message.InnerHtml="<Script language=\"JavaScript\">document.getElementById(\"DDL_Trunk\").style.display=\"none\";document.getElementById(\"DDL_Leaf\").style.display=\"none\";";
    //初始化一级控件的单击事件
    Td_Message.InnerHtml+="load("+DDL_Root.SelectedValue+",'DDL_Trunk','DDL_Leaf');</Script>";
    3、JavaScript的函数
    function load(state,obj,str)
    {
    var drp2=document.getElementById(obj);
    if(drp2!=null)
    {
    var count=drp2.length;
    alert(state);
    for(var i = drp2.options.length;i>=0 ;i--)//清楚现有列表项
      { 
      drp2.remove(i);
      }   
    var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
    var oDoc = new ActiveXObject("MSXML2.DOMDocument");
    oHttpReq.open("POST", "DDLSelect.aspx?state="+escape(state), false);
    oHttpReq.send("");
    result = oHttpReq.responseText;
    alert(result);
    oDoc.loadXML(result);

    return false;
    items1 = oDoc.selectNodes("//CITY/Table/i_Id"); //读取所有请求大类所属小类的类名 
    items2 = oDoc.selectNodes("//CITY/Table/vc_TreeName"); //读取所有请求大类所属小类的编号 
    var itemsLength=items1.length;
    if(itemsLength!=0)
    {
    var newvalue="";
    drp2.style.display="";
    for(i=0;i<itemsLength;i++) //将小类的类名和编号赋予DropDownList2 <BR>{ <BR>var newOption =  {
    var newOption = document.createElement("OPTION");
    newOption.value = items1[i].text;//cityId;
    newOption.text = items2[i].text;//cityName;
    drp2.options.add(newOption);
    if(i==0)
    newvalue=newOption.value;

    }
    if(str!="")
    load(newvalue,str,"");

    }
    else
    {
    drp2.style.display="none";
    if(str!="")
    document.getElementById(str).style.display="none";
    }
    }
    }
    4、动态读取页面if(this.Request["state"]!=null)
    {
    Response.Clear();
    DataSet ds;

    //ds=ArtPaper.Ds;

    // if(ds==null)
    {
    ds=new DataSet("Menu");
    Sql.TSqlDB APP_SqlDb=new Sql.TSqlDB("DBsmehen");
    SqlDataAdapter APP_Ada=new SqlDataAdapter("Psp_ShowPopedomMenu "+Request.Cookies["AdminId"].Value+","+Request["state"],APP_SqlDb.SqlConn);
    APP_Ada.Fill(ds,"Tree");
    APP_SqlDb.Dispose();
    } XmlTextWriter writer = new XmlTextWriter(Response.OutputStream,System.Text.Encoding.UTF8);// Response.ContentEncoding); writer.Formatting = Formatting.Indented;
    writer.Indentation = 4;
    writer.IndentChar = ' ';
    ds.WriteXml(writer);
    writer.Flush();
    writer.Close();
    ds.Dispose();

    Response.End();
    }
    本人一直使用的,方便快捷
      

  3.   

    用Ajax,使用<div>来动态生成<select>,生成<select>的代码中,加入onchange事件,事件指向一个function,在function中调用ajax方法再次生成下一级的<select>,如此下去,多少级联动都可以。
      

  4.   

    有一个2级的。 你自己改改吧<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!--#include file="adofunctions.asp"-->
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <script language="javascript">
    <!--function t2(){
    document.all("lb2").length=0;
        var objSelect = document.myForm.lb2;<%
    strsql="select * from lb2 where 1=1"
    set objrslb2=getsqlrecordset(strsql,"../dt/db.mdb","lb2")
    if not objrslb2.eof then
    do
    %>
    if( <%=objrslb2("lb1")%> == myForm.lb1.value ){
         var strname='<%=objrslb2("lb2")%>';
    var strvalue=<%=objrslb2("id")%>;
    var objOption = new Option(strname,strvalue);
            objSelect.options[objSelect.options.length] = objOption;
    }
    <%
    objrslb2.movenext
    if objrslb2.eof then 
    exit do
    end ifloop
    end if
    %>
    }//-->
    </script>
    <title>无标题文档</title>
    </head><body>
    <form action="lb3.asp" method="post" name="myForm">
    <table align="center">
    <tr><td>添加二级类别:</td></tr>
    <tr>
    <td>
    <input type="hidden" name="l" value="add">
    <select name="lb1" onchange="t2()">
    <%
    strsql="select * from lb1 where 1=1"
    set objrs=getsqlrecordset(strsql,"../dt/db.mdb","lb1")
    if not objrs.eof then
    do
    %>
    <option value="<%=objrs("id")%>"><%=objrs("lb1")%></option>
    <%
    objrs.movenext
    if objrs.eof then
    exit do
    end if
    loop
    end if
    %>
    </select>
    <% 'response.End() %>
    <select name="lb2">
    <%
    strsql="select * from lb1 where 1=1"
    set objrs1=getsqlrecordset(strsql,"../dt/db.mdb","lb1")
    if not objrs1.eof then
    lb1=objrs1("id")
    strsql="select * from lb2 where lb1='"& lb1 &"'"response.Write "<script>alert('"+strsql +"');</script>"
    set objrs=getsqlrecordset(strsql,"../dt/db.mdb","lb2")if not objrs.eof then
    do
    %>
    <option value="<%=objrs("id")%>"><%=objrs("lb2")%></option>
    <%
    objrs.movenext
    if objrs.eof then
    exit do
    end if
    loop
    end if
    end if
    %>
    </select><input name="lb3" type="text" maxlength="50"><input type="submit" value="提交">
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>
      

  5.   

    <%
    '三级下拉框连动
    '
    '数据库:location
    '表 loaction  所在地表
    '   字段
    ' lid
    '   loactionname 名字
    ' code  代码
    '   loactionid  省
    ' districtid 地区
    '   villageid  县区
    '
    '数据库样式
    'loactionname   code    loactionid    districtid    villageid
    '河北省         130000      13            00           00
    '石家庄市       130100      13            01           00
    '长安区         130101      13            01           01
    %>
    <html> 
    <head> 
    <title>List</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <% 
    dim conn 
    dim rs 
    dim sql 
    dim count 
    dim rs1 
    dim sql1 
    dim rs2 
    dim sql2 
    dim count2 set conn=server.createobject("adodb.connection") 
    conn.open"provider=sqloledb;data source=192.168.0.33;uid=;pwd=;database=location;" 
    sql = "select RTRIM(left(code,4)) as bm,loactionname,loactionid from loaction where districtid<>00 and villageid=00 order by lid asc" 
    set rs = conn.execute(sql)
    %> 
    <script language = "javascript"> 
    var onecount; 
    onecount=0; 
    subcat = new Array(); 
    <% 
    count = 0 
    do while not rs.eof 
    %> 
    subcat[<%=count%>] = new Array("<%= trim(rs("loactionname"))%>","<%= trim(rs("loactionid"))%>","<%= trim(rs("bm"))%>"); 
    <% 
    count = count + 1 
    rs.movenext 
    loop 
    rs.close 
    set rs=nothing 
    %> 
    onecount=<%=count%>; function changelocation(locationid) 

    document.myform.smalllocation.length = 0; var locationid=locationid; 
    var i; 
    document.myform.smalllocation.options[0] = new Option('==所选城市的地区==',''); 
    for (i=0;i < onecount; i++) 

    if (subcat[i][1] == locationid) 

    document.myform.smalllocation.options[document.myform.smalllocation.length] = new Option(subcat[i][0], subcat[i][2]); 



    </script> <!---->
    <%
    sql2 = "select RTRIM(left(code,4)) as bm,loactionname,villageid from loaction where districtid<>00 and villageid<>00 order by fid asc"
    set rs2 = conn.execute(sql2)
    %> 
    <script language = "javascript"> 
    var onecount2; 
    onecount2=0; 
    subcat2 = new Array(); 
    <% 
    count2 = 0 
    do while not rs2.eof 
    %> 
    subcat2[<%=count2%>] = new Array("<%= trim(rs2("loactionname"))%>","<%= trim(rs2("bm"))%>","<%= trim(rs2("villageid"))%>"); 
    <% 
    count2 = count2 + 1 
    rs2.movenext 
    loop 
    rs2.close 
    set rs2=nothing
     
    %> 
    onecount2=<%=count2%>; function changelocation2(villageid) 

    document.myform.village.length = 0; .
    var villageid=villageid; 
    var j; 
    document.myform.village.options[0] = new Option('==所选地区的县区==',''); 
    for (j=0;j < onecount2; j++) 

    if (subcat2[j][1] == villageid) 

    document.myform.village.options[document.myform.village.length] = new Option(subcat2[j][0], subcat2[j][2]); 


    } </script> 
     </head> 
    <body> 
    <form name="myform" method="post"> 分类:<select name="biglocation" onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)" size="1"> 
    <option selected>请选择你所在的省份</option> 
    <% sql1 = "select * from loaction where districtid=00 and villageid=00 order by fid asc" 
    set rs1 = conn.Execute (sql1) 
    do while not rs1.eof 
    %> 
    <option value="<%=trim(rs1("loactionid"))%>"><%=trim(rs1("loactionname"))%></option> <% 
    rs1.movenext 
    loop 
    rs1.close 
    set rs1 = nothing 
    conn.Close 
    set conn = nothing 
    %> 
    </select>
    <select name="smalllocation" onChange="changelocation2(document.myform.smalllocation.options[document.myform.smalllocation.selectedIndex].value)"> 
    <option selected value="">==所有地区==</option> 
    </select>
    <select name="village" size="1"> 
    <option selected>==所有县区==</option> 
    </select> 
    </form> </body> 
    </html> ***********************************************上面这个有问题呀,第三个下拉列表不动~~ 55555
      

  6.   

    http://www.baidu.com/s?ie=gb2312&bs=%CA%A1%CA%D0%CF%D8%C1%AA%B6%AF&sr=&z=&cl=3&f=8&wd=%CA%A1%CA%D0%CF%D8%C1%AA%B6%AFselect&ct=0