主题:  比较难的问题--有关多级下拉选择框

fourfour

职务:普通成员
等级:1
金币:0.0
发贴:61
注册:2001/10/25 14:13:41
#12004/2/25 16:13:28
在网上要搜索到相关的资料,知道多级下拉选择框htm的方式是可以实现的,大多是通过数组的方式。

但现在是要实现三级下拉选择框,如:
选第一个下拉选择框的中国,第二个下拉选择框就显示省,再选择省第三个下拉选择框就显示市。
纯文本的例子如下所示:

0755i.com/js/browser/select/preview.htm

里边的数据都是从后台数据库里读取。
主要是要从数据库里读取。
不知道ASP如何实现。

有哪位知道。
谢谢了。


下面的代码是否可用呢:
<%@ Language=VBScript %>
<%Option Explicit%>
<html>
<head>
<title>List</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
dim conn
dim rs
dim sql
dim count
dim rs1
dim sql1


set conn = server.CreateObject ("adodb.connection"
conn.Open "test","sa",""


sql = "select * from district order by locationid asc"
set rs = conn.execute(sql)
%>
<script language = "javascript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("districtname")%>","<%= trim(rs("locationid")%>","<%= trim(rs("districtid")%>";
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount=<%=count%>;

function changelocation(locationid)
{
document.myform.smalllocation.length = 0;

var locationid=locationid;
var i;
document.myform.smalllocation.options[0] = new Option('====所有地区====','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.smalllocation.options[document.myform.smalllocation.length] = new Option(subcat[i][0], subcat[i][2]);
}
}

}
</script>
</head>
<body>
<form name="myform" method="post">
<select name="biglocation" onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)">
<%

sql1 = "select * from location order by locationname asc"
set rs1 = conn.Execute (sql1)
do while not rs1.eof
%>
<option value="<%=trim(rs1("locationid")%>"><%=trim(rs1("locationname")%></option>
<%
rs1.movenext
loop
rs1.close
set rs1 = nothing
conn.Close
set conn = nothing
%>
</select>
<select name="smalllocation">
<option selected value="">==所有地区==</option>
</select>
</form>
<script LANGUAGE="javascript">
changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value);
</script>
</body>
</html>


数据库:
create table location
(

locationid char(2) not null primary key,
locationname char(50) not null

)


create table district
(

districtid char(3) not null primary key,
districtname char(50) not null,
locationid char(2) not null
)