它是继 "利用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 黑龙江省 盘锦市
有关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 黑龙江省 盘锦市