给你一个类似的页面, 你自己再发挥一下:
<!-- 数据库结构 两个字段 provinceName(省名)  cityName(城市名) -->
<!-- #include file="connection.asp" -->
<script language=javascript>
<%
dim RS
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.open "SELECT * FROM tableName ORDER BY provinceName DESC", Conn, 0, 1dim provinceName '省名
dim provinceList '记录所有的省名, 最后输出到JS里组成省名数组
dim cityList     '记录某个省的所有城市名, 最后输出到JS里组成城市名数组
dim cityIndex    'JS的city数组名与省名下拉框的索引对应
    cityIndex = 1    do while not RS.eof
        if  isEmpty(provinceName) then
            cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
            provinceName = Trim(RS("provinceName"))
        else
            if  provinceName<>Trim(RS("provinceName")) then
                provinceList = provinceList & chr(34) & provinceName & chr(34) &","
                if not isEmpty(cityList) then Response.write "var city"& cityIndex &_
                " = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
                '输出每个省所对应的城市名的列表并组成JS的数组, 数组形式参考下面的实例
                cityIndex = cityIndex + 1
                cityList = ""
            end if
            provinceName = Trim(RS("provinceName"))
            cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
            '将每个省里的所有城市名组成一串字串
        end if
        RS.movenext
    loop    if not isEmpty(cityList) then
        Response.write "var city"& cityIndex &" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
    end if
    if not isEmpty(provinceName) then
        provinceList = provinceList & chr(34) & provinceName & chr(34) &","
        Response.write "var provinceName = ["& Left(provinceList, Len(provinceList)-1) &"];"
        '输出省名字串并组成省名的JS数组, 形式见下实例
    end if    RS.close    : Set RS=nothing
    Conn.close  : Set Conn=nothing
%>
</script><form name=form1>
<select name=province onchange="cityName(this.selectedIndex)">
  <option value="">请选择省名</option>
</select><select name=city>
  <option value="">请选择城名</option>
</select>
</form><script language=javascript>/* 若要直接看下拉框联动效果的话, 将这段被注释的代码起用, 且上面的那段ASP注释即可
var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
var provinceName = ["浙江", "江苏", "安徽", "江西"];
//你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功
*/
function province()
{    var e = document.form1.province;
    for (var i=0; i<provinceName.length; i++)
       e.options.add(new Option(provinceName[i], provinceName[i]));
}
function cityName(n)
{
    var e = document.form1.city;
    for (var i=e.options.length; i>0; i--)  e.remove(i);
    if (n == 0) return;
    var a = eval("city"+ n); //得到城市的数组名
    for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
}
function window.onload()
{
    province(); //初始时给省名下拉菜单赋内容
}
</script>

解决方案 »

  1.   

    <FORM name="isc">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr align="center"> 
        <td nowrap height="11"> &nbsp;<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
    <option selected>---Select1-------------</option>
    <option>Webmaster Sites</option>
    <option>News Sites</option>
    </select><select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select2--------------</option>
    <option value=" " selected>---Select2--------------</option>
    </select><select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select3----------------</option>
    <option value=" " selected>---Select3----------------</option>
    </select><script>
    <!--/*
    Triple Combo Script Credit
    By Hamid Cheheltani/ Website Abstraction (http://www.wsabstract.com)
    Visit http://wsabstract.com for this and over 400+ other scripts
    */var groups=document.isc.example.options.length
    var group=new Array(groups)
    for (i=0; i<groups; i++)
    group[i]=new Array()group[0][0]=new Option("---Select2---"," ");group[1][0]=new Option("Now Select This One"," ");
    group[1][1]=new Option("JavaScript","47");
    group[1][2]=new Option("DHTML","46");
    group[1][3]=new Option("CGI","45");group[2][0]=new Option("Now Select This One"," ");
    group[2][1]=new Option("General News","115");
    group[2][2]=new Option("Technology News","116"); var temp=document.isc.stage2
    function redirect(x){
    for (m=temp.options.length-1;m>0;m--)
    temp.options[m]=null
    for (i=0;i<group[x].length;i++){
    temp.options[i]=new Option(group[x][i].text,group[x][i].value)
    }
    temp.options[0].selected=true
    redirect1(0)
    }var secondGroups=document.isc.stage2.options.length
    var secondGroup=new Array(groups)
    for (i=0; i<groups; i++)  {
    secondGroup[i]=new Array(group[i].length)
    for (j=0; j<group[i].length; j++)  {
    secondGroup[i][j]=new Array()  }}secondGroup[0][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][1][0]=new Option("Now Select This One"," ");
    secondGroup[1][1][1]=new Option("Website Abstraction","http://wsabstract.com");
    secondGroup[1][1][2]=new Option("JavaScript for the non programmer","http://webteacher.com/javascript/");
    secondGroup[1][1][3]=new Option("Java-Scripts.net","http://java-scripts.net");secondGroup[1][2][0]=new Option("Now Select This One"," ");
    secondGroup[1][2][1]=new Option("Dynamic Drive","http://www.dynamicdrive.com");
    secondGroup[1][2][2]=new Option("Beginner\'s Guide to DHTML","http://www.geocities.com/ResearchTriangle/Facility/4490/");
    secondGroup[1][2][3]=new Option("Web Coder","http://webcoder.com/");secondGroup[1][3][0]=new Option("Now Select This One"," ");
    secondGroup[1][3][1]=new Option("CGI Resources","http://www.cgi-resources.com");
    secondGroup[1][3][2]=new Option("Ada\'s Intro to CGI","http://adashimar.hypermart.net/");secondGroup[2][0][0]=new Option("---Select 3---"," ");
    secondGroup[2][1][0]=new Option("Now Select This One"," ");
    secondGroup[2][1][1]=new Option("CNN","http://www.cnn.com");
    secondGroup[2][1][2]=new Option("MSNBC","http://www.msnbc.com");
    secondGroup[2][1][3]=new Option("ABC News","http://www.abcnews.com");secondGroup[2][2][0]=new Option("Now Select A Page"," ");
    secondGroup[2][2][1]=new Option("News.com","http://www.news.com");
    secondGroup[2][2][2]=new Option("Wired","http://www.wired.com");var temp1=document.isc.stage3
    function redirect1(y){
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){
    temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)
    }
    temp1.options[0].selected=true
    }function redirect2(z){
    window.location=temp1[z].value
    }//-->
    </script> </td>
      </tr>
    </table>
    </FORM><p><font face="arial" size="-2">This free script provided by</font><br>
    <font face="arial, helvetica" size="-2"><a href="http://wsabstract.com">Website
    Abstraction</a></font></p>
      

  2.   

    {
    var gh=new Array();
    var xm=new Array();
    var bm=new Array();
    <%  num=0
       sql7="select gh,xm,ksbh from jb_ry  order by ksbh"
       set rs7=conn.execute(sql7) 
       while not rs7.eof %>
       gh[<%=num%>]=<%="'"&trim(rs7("gh"))&"'"%>; xm[<%=num%>]="<%=rs7("xm")%>"; bm[<%=num%>]="<%=trim(rs7("ksbh"))%>" ;
      <% num=num+1
       rs7.movenext
       wend
     %>
     }//通过部门编号过滤人员<option>中的value值为工号
    //bmbh=document.frm.ks.value,ryghxm=放人员下拉框的<td id=>的id号,selectstrhead为下拉框中的头:<select name=> 
    function ryglgh(bmbh,ryghxm,selectstrhead)
    {
     var selectstr;
     var iii;
     selectstr=selectstrhead;
     for (iii=0;iii<<%=num%>;iii++)
     {
       if (bmbh==bm[iii])
       {
       selectstr+="<option value='"+gh[iii]+"'>"+xm[iii]+"</option>";
       }
     }
     selectstr+="</select>";
     eval(ryghxm).innerHTML=selectstr; 
    }这是一个通过选择科室,提取相应人员的涵数在地一个下拉框中用onchange调涵数,
    <td id=ryghxm></td>
    思想都差不多,因为不能刷新页面所以你一开始就要把信息付给javascript中的变量或数组