快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

利用XMLHTTP实现的二级连动SELECT

利用XMLHTTP实现的二级连动Select.

这是继 "利用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[i],arrstr[i])
}
}
</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)
{
//遍历所有适合的数据放入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 辽宁省 盘锦市
返回类别: 教程
上一教程: 验证身份证号是否准确的代码
下一教程: ASP事务处理的另外一个方式

您可以阅读与"利用XMLHTTP实现的二级连动SELECT"相关的教程:
· ASP小偷程序如何利用XMLHTTP实现表单的提交以及COOKIES或SESSION的发送
· XMLHTTP+Javascript+Asp写得聊天室,无刷新实现(四)
· ASP实现二级下拉列表
· 用asp.net实现的把本文推荐给挚友功能
· 如何利用ASP实现邮箱访问
    微笑服务 优质保证 索取样品