做网站我们更专业,服务我们更用心----厦门优艾网络工作室
建站热线:135~1596~4500

利用XMLHTTP实现的二级连动Select

3/4/2006 11:48:01 PM 来源: 作者: 浏览热度( 次) 字号:T|T
分享到:



server.asp  服务器端处理.

<% @Language="JavaScript" %>
<%
function OpenDB(sdbname)
{
/*
*--------------- OpenDB(sdbname) -----------------
* OpenDB(sdbname)
* 功能:打开数据库sdbname,返回conn对象.
* 参数:sdbname,字符串,数据库名称.
* 实例:var conn = OpenDB("database.mdb");
*--------------- 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)
{
//遍历所有适合的数据放入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 辽宁省  盘锦市

 查考资料
  
  XMLHTTP方法:
  
  Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword
  bstrMethod:数据传送方式,即GET或POST。
  bstrUrl:服务网页的URL。
  varAsync:是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。
  应用中一般将其置为False,即异步执行。
  bstrUser:用户名,可省略。
  bstrPassword:用户口令,可省略。
  
  Send varBody
  varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。
  
  setRequestHeader bstrHeader, bstrValue
  bstrHeader:HTTP 头(header)
  bstrValue:HTTP 头(header)的值
  如果Open方法定义为POST,可以定义表单方式上传:
  xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  
  XMLHTTP属性:
  
  onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
  responseBody:结果返回为无符号整数数组。
  responseStream:结果返回为IStream流。
  responseText :结果返回为字符串。
  responseXML:结果返回为XML格式数据。

返回】 【关闭