它是继 "利用XMLHTTP无更新读取数据" 的另一篇有关XMLHTTP的运用. 
有关XMLHTTP.可以说,是一个非常好的接合剂.把客户端和服务器端的间距拉进了. 
利用XMLHTTP.我们可以完成许多好的念头. 
这文章内容.完成了二级联动Select. 
传统式二级联动是把全部的数据信息都传入有客户端.. 
利用XMLHTTP.我们可以即时地回到大家所必须的数据信息. 
select.htm 
复制代码 编码以下:
<script language="Javascript"> 
function GetResult(str) 

/* 
 *--------------- GetResult(str) ----------------- 
 * GetResult(str)  
 * 作用:根据XMLHTTP推送要求,回到結果. 
 * 主要参数:str,字符串数组,推送标准. 
 * 案例:GetResult(document.all.userid.value); 
 * author:wanghr100(灰豆小宝宝.net
 * update:2004-5-27 19:02 
 *--------------- GetResult(str) ----------------- 
 */ 
    var oBao = new ActiveXObject("Microsoft.XMLHTTP"); 
    oBao.open("POST","Server.asp?sel=" str,false); 
    oBao.send(); 
    //服务端解决回到的是历经escape编号的字符串数组. 
    //根据XMLHTTP回到数据信息,刚开始搭建Select. 
    BuildSel(unescape(oBao.responseText),document.all.sel2) 

function BuildSel(str,sel) 

/* 
 *--------------- BuildSel(str,sel) ----------------- 
 * BuildSel(str,sel)  
 * 作用:根据str搭建Select. 
 * 主要参数:str,字符串数组,由服务器端回到的.有特殊构造"字符串数组1,字符串数组2,字符串数组3" 
 * 主要参数:sel,要搭建的Select 
 * 案例:BuildSel(unescape(oBao.responseText),document.all.sel2) 
 * author:wanghr100(灰豆小宝宝.net) 
 * update:2004-5-27 19:02 
 *--------------- BuildSel(str,sel) ----------------- 
 */ 
    //先清除原先的数据信息. 
    sel.options.length=0; 
    var arrstr = new Array(); 
    arrstr = str.split(","); 
    //刚开始搭建新的Select. 
    for(var i=0;i<arrstr.length;i ) 
    { 
        sel.options[sel.options.length]=new Option(arrstr,arrstr) 
    } 

</script> 
<select name="sel" onChange="GetResult(this.value)"> 
<option value="">挑选 
<option value="福建">福建 
<option value="湖北">湖北 
<option value="黑龙江省">黑龙江省 
<select> 
<select name="sel2"></select>

server.asp  服务端解决. 
复制代码 编码以下:
<% @Language="Javascript" %> 
<% 
function OpenDB(sdbname) 

/* 
 *--------------- OpenDB(sdbname) ----------------- 
 * OpenDB(sdbname)  
 * 作用:开启数据库查询sdbname,回到conn目标. 
 * 主要参数:sdbname,字符串数组,数据库查询名字. 
 * 案例:var conn = OpenDB("database.mdb"); 
 * author:wanghr100(灰豆小宝宝.net) 
 * update:2004-5-12 8:18 
 *--------------- OpenDB(sdbname) ----------------- 
 */ 
    var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" Server.MapPath(sdbname); 
    var conn = Server.CreateObject("ADODB.Connection"); 
    conn.Open(connstr); 
    return conn; 

var oConn = OpenDB("data.mdb"); 
var province = Request("sel"); 
var arrResult = new Array(); 
var sql = "select city from china where province='" province "'"; 
var rs = Server.CreateObject("ADODB.Recordset"); 
rs.Open(sql,oConn,1,1); 
while(!rs.EOF) 

    //解析xml全部合适的数据信息放进arrResult数字能量数组中. 
    arrResult[arrResult.length] = rs("city").Value; 
    rs.MoveNext(); 

//escape解决了XMLHTTP。汉语解决的难题. 
//数字能量数组组成字符串数组.由","字符串数组联接. 
Response.Write(escape(arrResult.join(","))); 
%>

概念模型设计 
data.mdb 
表china. 
字段名 
id  自动编号 
province 文字 
city  文字 
表:china 数据信息:  
id province city 
1 福建  福州 
2 福建  泉州市 
3 福建  晋江市 
4 湖北  武汉 
5 湖北  荆州市 
6 湖北  宜昌市 
7 黑龙江省  沈阳 
8 黑龙江省  大连 
9 黑龙江省  盘锦市