ASP+XML的双下拉选单的连动问题-在线等待

awaysrain 2002-10-11 04:51:59
网上找的一段代码
第一个下拉框可以显示,但是在调用onchange="ChooseCity()"时就死翘翘了
帮忙看一下,我是对XML一点也不懂
数据库可以到http://wwww.abszreo.com/tree.mdb下栽

表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")
DBPath = Server.MapPath("tree.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
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()
{
//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;i<oRoot.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")
DBPath = Server.MapPath("tree.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
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>
...全文
62 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
awaysrain 2002-10-16
  • 打赏
  • 举报
回复
没人回答?
那也结帖
awaysrain 2002-10-14
  • 打赏
  • 举报
回复
已经解决了,把代码考到别的机子上执行就可以,是我的机子配置问题
谁能给解释一下ASP+XML需要什么环境?然后马上结帖
awaysrain 2002-10-12
  • 打赏
  • 举报
回复
我已经安装了XML4.0
还是那样
awaysrain 2002-10-12
  • 打赏
  • 举报
回复
我的XML 文件运行结果如下:
<?xml version="1.0" encoding="GB2312" ?>
- <推荐丛书>
+ <书籍>
- <!-- 替老婆胭脂虎的书所做的无耻宣传 ;-) ,请勿见怪
-->
<名称>煞死你的网页设计绝招</名称>
<作者>胭脂虎</作者>
<售价 货币单位="新台币">590</售价>
</书籍>
- <书籍>
<名称>如何在 7-11 白吃白喝</名称>
<作者>无名氏</作者>
<售价 货币单位="新台币">120</售价>
</书籍>
</推荐丛书>


是不是不能解释XML?
awaysrain 2002-10-12
  • 打赏
  • 举报
回复
我试过了
1)
var oXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
到这里就出错了
var sState = form1.SelState.options(form1.SelState.selectedIndex).value;
2)
var oXMLDoc = new ActiveXObject('MSXML2.DOMDocument');
到这里就出错了
oXMLDoc.url = sURL;

能帮我改一下吗?
或者到你的机子上试一下
我怀疑我的环境问题,根本就不解释XML
Iamfish 2002-10-12
  • 打赏
  • 举报
回复
有没有按 net_lover(孟子E章) 这样做?

var oXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
或者

var oXMLDoc = new ActiveXObject('MSXML2.DOMDocument');
孟子E章 2002-10-11
  • 打赏
  • 举报
回复
var oXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
或者

var oXMLDoc = new ActiveXObject('MSXML2.DOMDocument');
awaysrain 2002-10-11
  • 打赏
  • 举报
回复
我去哪里找xml3.0?
awaysrain 2002-10-11
  • 打赏
  • 举报
回复
ie6还不行吗?
laolieMe 2002-10-11
  • 打赏
  • 举报
回复
你装了xml3.0(或者其他版本,据说4.0也有了,但我没用过)了吗?

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧