解决双下拉选单的连动问题

2016-02-19 18:36 2 1 收藏

下面是个简单易学的解决双下拉选单的连动问题教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

     就以选取省份后改变城市选项为例,省份、城市数据存放于后台MSSQL Server,就一个表:Citys:字段State、City。

程序:

CitySelect.asp
%@ LANGUAGE="vbscript" %
%
strPathInfo = Request.ServerVariables("PATH_INFO")
strPathInfo = "http://" & Request.ServerVariables("SERVER_NAME") & Left(strPathInfo,InstrRev(strPathInfo,"/"))
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "sqloledb"
Conn.Open "Data Source=ServerName;Initial Catalog=dbName;", "sa", ""
Set RS = Conn.Execute("SELECT DISTINCT state FROM citys")
arrPr = RS.GetRows()
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%
HTML
HEAD
META http-equiv="Content-Type" content="text/html; charset=gb_2312-80"
TITLE/TITLE
SCRIPT language=javascript
!--
function ChooseCity()
{
file://Clear City List
for(var i=form1.SelCity.options.length-1;i=0;--i)
{
form1.SelCity.options.remove(i)
}
var sState = form1.SelState.options(form1.SelState.selectedIndex).value;
var oXMLDoc = new ActiveXObject('MSXML');
sURL = '%=strPathInfo%XMLCity.asp?State=' + sState;
oXMLDoc.url = sURL;
var oRoot=oXMLDoc.root;
if(oRoot.children != null)
{
for(var i=0;ioRoot.children.length;++i)
{
oItem = oRoot.children.item(i);
sName = oItem.text;
var oOption = document.createElement('OPTION');
oOption.text = sName;
oOption.value = sName;
form1.SelCity.options.add(oOption);
}
}
}
--
/SCRIPT
/HEAD
BODY
FORM action="" method="post" id="form1" name="form1"
SELECT name="SelState" id="SelState" onchange="ChooseCity()"
%For i = LBound(arrPr,2) To UBound(arrPr,2)%
OPTION value="%=arrPr(0,i)%"%=arrPr(0,i)%/OPTION
%Next%
/SELECT
SELECT name="SelCity" id="SelCity"
/SELECT
/FORM
/BODY
/HTML
--------------------------
XMLCity.asp
%@ LANGUAGE="VBSCRIPT" %
%
sState = Request.QueryString("State")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "sqloledb"
Conn.Open "Data Source=ServerName;Initial Catalog=dbName;", "sa", ""
Set RS = Conn.Execute("SELECT city FROM citys WHERE state='" & sState & "'")
arrCity = Rs.GetRows()
%
?xml version="1.0" encoding="gb2312" ?
citys
%For i = LBound(arrCity,2) To UBound(arrCity,2)%
city%=arrCity(0,i)%/city
%Next%
/citys
--------------------------
   几点说明:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

   1、简单的说,这种方法就是利用客户端MSXMl对象去load一个xml,而这个xml文件的后缀是asp,呵呵,传个querysting过去就可以为所欲为了,好处是显然的:页面不刷新;传输的数据少,不需要把所有数据全传到客户端 :)

   2、这种方法Zee最早是在White前辈的一篇帖子里看到的,不过他老人家的sample是用来取服务器端的时间,大材小用阿。 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

   3、本方法对ie4以上版本有效。(这也是为什么不用"microsoft.XMLDOM"对象而用"msxml"的原因)

来源:https://www.tulaoshi.com/n/20160219/1618277.html

延伸阅读
标签: windows 操作系统
  问:我的电脑使用的是Intel 845E芯片组主板,支持USB2.0设备,我在硬盘中安装了Windows 98和Windows XP双系统,在Windows 98下把驱动都安装完后,什么问题都没有,设备管理器里也没有任何未知设备和感叹号,但在Windows XP中手动安装USB2.0设备的驱动时总是不成功,出现黄色感叹号。我试着更新SP1扩展包,但系统提示语言不对,不能...
标签: Web开发
动机:  现在我们做个在IE里应用XML的一个小例子:解决双下拉选单的连动问题。大家最常见的可能就是选取省份后改变城市选项的例子了,那我们就来尝试着用XML来完成吧。 以前介绍的一些功能我是直接用XML+XSL文件来完成的,大家可能还不是很熟悉它的用法,所以我这次就用HMTL+XML来做,希望能够让大家更清楚的了解--XML原...
陌陌附近活动问题汇总   1.什么是附近活动? 附近活动是指所在定位附近所发起举办的多种类型活动。 2.如何打开附近活动? 点击发现,选择附近活动即可。 3.如何创建及推广活动? 陌陌暂时不接受个人的创建活动申请。机构主办方入驻陌陌附近活动点击这里即可跳转,申请成功后可以通过自助中的活动中心发布...
标签: ASP
  <html <head <titleList</title <meta http-equiv="Content-Type" content="text/html; charset=gb2312" <script LANGUAGE="javascript" <!-- var onecount; onecount=0;      subcat = new Array(); subcat[0] = new Array("徐汇区","01"...
驱动人生系统如何解决扫描仪驱动问题   方法一:使用驱动人生检测安装扫描仪驱动。当你的电脑需要连接扫描仪时,首先可以使用驱动人生检测扫描仪,查找匹配的驱动。驱动人生拥有多种品牌扫描仪驱动,并也提供万能扫描仪驱动下载。所以不管你的扫描仪是什么品牌,驱动人生都能智能匹配最合适的扫描仪驱动程序。打开驱动人生,一键检测...

经验教程

254

收藏

80
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部