利用XMLHTTP实现的二级连动Select
利用XMLHTTP实现的二级连动Select
发布时间:2016-12-29 来源:查字典编辑
摘要:这是继"利用XMLHTTP无刷新获取数据"的另一篇关于XMLHTTP的应用.关于XMLHTTP.可以说,是一个很好的接合剂.把客户端和服务端...

这是继"利用XMLHTTP无刷新获取数据"的另一篇关于XMLHTTP的应用.

关于XMLHTTP.可以说,是一个很好的接合剂.把客户端和服务端的距离拉近了.

利用XMLHTTP.我们可以实现很多好的想法.

这文章.实现了二级连动Select.

传统二级连动是把所有的数据都传到有客户端..

利用XMLHTTP.我们可以实时地返回我们所需要的数据.

select.htm

复制代码 代码如下:

<scriptlanguage="Javascript">

functionGetResult(str)

{

/*

*---------------GetResult(str)-----------------

*GetResult(str)

*功能:通过XMLHTTP发送请求,返回结果.

*参数:str,字符串,发送条件.

*实例:GetResult(document.all.userid.value);

*author:wanghr100(灰豆宝宝.net)

*update:2004-5-2719:02

*---------------GetResult(str)-----------------

*/

varoBao=newActiveXObject("Microsoft.XMLHTTP");

oBao.open("POST","Server.asp?sel="+str,false);

oBao.send();

//服务器端处理返回的是经过escape编码的字符串.

//通过XMLHTTP返回数据,开始构建Select.

BuildSel(unescape(oBao.responseText),document.all.sel2)

}

functionBuildSel(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-2719:02

*---------------BuildSel(str,sel)-----------------

*/

//先清空原来的数据.

sel.options.length=0;

vararrstr=newArray();

arrstr=str.split(",");

//开始构建新的Select.

for(vari=0;i<arrstr.length;i++)

{

sel.options[sel.options.length]=newOption(arrstr,arrstr)

}

}

</script>

<selectname="sel"onChange="GetResult(this.value)">

<optionvalue="">请选择

<optionvalue="福建省">福建省

<optionvalue="湖北省">湖北省

<optionvalue="辽宁省">辽宁省

<select>

<selectname="sel2"></select>

server.asp服务器端处理.

复制代码 代码如下:

<%@Language="Javascript"%>

<%

functionOpenDB(sdbname)

{

/*

*---------------OpenDB(sdbname)-----------------

*OpenDB(sdbname)

*功能:打开数据库sdbname,返回conn对象.

*参数:sdbname,字符串,数据库名称.

*实例:varconn=OpenDB("database.mdb");

*author:wanghr100(灰豆宝宝.net)

*update:2004-5-128:18

*---------------OpenDB(sdbname)-----------------

*/

varconnstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(sdbname);

varconn=Server.CreateObject("ADODB.Connection");

conn.Open(connstr);

returnconn;

}

varoConn=OpenDB("data.mdb");

varprovince=Request("sel");

vararrResult=newArray();

varsql="selectcityfromchinawhereprovince='"+province+"'";

varrs=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数据:

idprovincecity

1福建省福州市

2福建省厦门市

3福建省泉州市

4湖北省武汉市

5湖北省荆州市

6湖北省宜昌市

7辽宁省沈阳市

8辽宁省大连市

9辽宁省盘锦市

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新AJAX相关学习
热门AJAX相关学习
编程开发子分类