<%@ Language=VBScript codepage=936 %>
<% Option Explicit %>
<!-- 数据库结构 两个字段 provinceName(省名) cityName(城市名) -->
<!-- #include file="connection.asp" -->
<script language=javascript>
<%
dim RS
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "SELECT * FROM tableName ORDER BY provinceName DESC", Conn, 0, 1dim provinceName '省名
dim provinceList '记录所有的省名, 最后输出到JS里组成省名数组
dim cityList '记录某个省的所有城市名, 最后输出到JS里组成城市名数组
dim cityIndex 'JS的city数组名与省名下拉框的索引对应
cityIndex = 1 do while not RS.eof
if isEmpty(provinceName) then
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
provinceName = Trim(RS("provinceName"))
else
if provinceName<>Trim(RS("provinceName")) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
if not isEmpty(cityList) then Response.write "var city"& cityIndex &_
" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
'输出每个省所对应的城市名的列表并组成JS的数组, 数组形式参考下面的实例
cityIndex = cityIndex + 1
cityList = ""
end if
provinceName = Trim(RS("provinceName"))
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
'将每个省里的所有城市名组成一串字串
end if
RS.movenext
loop if not isEmpty(cityList) then
Response.write "var city"& cityIndex &" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
end if
if not isEmpty(provinceName) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
Response.write "var provinceName = ["& Left(provinceList, Len(provinceList)-1) &"];"
'输出省名字串并组成省名的JS数组, 形式见下实例
end if RS.close : Set RS=nothing
Conn.close : Set Conn=nothing
%>
</script><form name=form1>
<select name=province onchange="cityName(this.selectedIndex)">
<option value="">请选择省名</option>
</select><select name=city>
<option value="">请选择城名</option>
</select>
</form><script language=javascript>/* 若要直接看下拉框联动效果的话, 将这段被注释的代码起用, 且上面的那段ASP注释即可
var provinceName = ["浙江", "江苏", "安徽", "江西"];
var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
//你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功
*/
function province()
{ var e = document.form1.province;
for (var i=0; i<provinceName.length; i++)
e.options.add(new Option(provinceName[i], provinceName[i]));
}
function cityName(n)
{
var e = document.form1.city;
e.options.length = 1;
if (n == 0) return;
var a = eval("city"+ n); //得到城市的数组名
for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
}
window.attachEvent("onload", province); //初始时给省名下拉框赋内容
</script>
<% Option Explicit %>
<!-- 数据库结构 两个字段 provinceName(省名) cityName(城市名) -->
<!-- #include file="connection.asp" -->
<script language=javascript>
<%
dim RS
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "SELECT * FROM tableName ORDER BY provinceName DESC", Conn, 0, 1dim provinceName '省名
dim provinceList '记录所有的省名, 最后输出到JS里组成省名数组
dim cityList '记录某个省的所有城市名, 最后输出到JS里组成城市名数组
dim cityIndex 'JS的city数组名与省名下拉框的索引对应
cityIndex = 1 do while not RS.eof
if isEmpty(provinceName) then
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
provinceName = Trim(RS("provinceName"))
else
if provinceName<>Trim(RS("provinceName")) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
if not isEmpty(cityList) then Response.write "var city"& cityIndex &_
" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
'输出每个省所对应的城市名的列表并组成JS的数组, 数组形式参考下面的实例
cityIndex = cityIndex + 1
cityList = ""
end if
provinceName = Trim(RS("provinceName"))
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
'将每个省里的所有城市名组成一串字串
end if
RS.movenext
loop if not isEmpty(cityList) then
Response.write "var city"& cityIndex &" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
end if
if not isEmpty(provinceName) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
Response.write "var provinceName = ["& Left(provinceList, Len(provinceList)-1) &"];"
'输出省名字串并组成省名的JS数组, 形式见下实例
end if RS.close : Set RS=nothing
Conn.close : Set Conn=nothing
%>
</script><form name=form1>
<select name=province onchange="cityName(this.selectedIndex)">
<option value="">请选择省名</option>
</select><select name=city>
<option value="">请选择城名</option>
</select>
</form><script language=javascript>/* 若要直接看下拉框联动效果的话, 将这段被注释的代码起用, 且上面的那段ASP注释即可
var provinceName = ["浙江", "江苏", "安徽", "江西"];
var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
//你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功
*/
function province()
{ var e = document.form1.province;
for (var i=0; i<provinceName.length; i++)
e.options.add(new Option(provinceName[i], provinceName[i]));
}
function cityName(n)
{
var e = document.form1.city;
e.options.length = 1;
if (n == 0) return;
var a = eval("city"+ n); //得到城市的数组名
for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
}
window.attachEvent("onload", province); //初始时给省名下拉框赋内容
</script>
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not Trs.eof
%>
subcat[<%=count%>] = new Array("<%=Trs("chengshi")%>","<%=Trs("shengfen")%>","<%=Trs("chengshi")%>");
<%
count = count + 1
Trs.movenext
loop
Trs.close
set Trs=nothing
%>
onecount=<%=count%>;function changelocation(locationid)
{
document.form1.chengshi.length = 0;var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.chengshi.options[document.form1.chengshi.length] = new Option(subcat[i][0], subcat[i][2]);
}
}}
</script>
<%
set rs=server.CreateObject("adodb.recordset")
rs.source="select 省份 from TABLE1"
rs.open rs.source,conn,1,1
set Trs=server.CreateObject("adodb.recordset")
sql="select 城市 from TABLE2"
Trs.open sql,conn,1,1
%>
<select name="shengfen" class="input" onchange="changelocation(document.form1.shengfen.options[document.form1.shengfen.selectedIndex].value)">
<option value="" selected>选择省份</option>
<% do while not rs.eof %>
<option value="<%=rs("省份")%>"><%=rs("省份")%></option>
<%
rs.movenext
loop
%>
</select>
<select name="money" class="input">
<option value="" selected>选择城市</option>
</select>
<table>
<tr>
<td height="2" width="176" align="right">所在省份: </td>
<td height="2" width="300">
<select name="prov" size="1" onchange="javascript:selectcity()" style="color: rgb(0,0,255); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: thin inset">
<option value="-1">未选</option>
</select> </td>
</tr>
<tr>
<td height="1" width="176" align="right">所在城市: </td>
<td height="1" width="300"><font color="#FF0000">
<select name="city" size="1" style="color: rgb(0,0,255); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: thin inset">
<option value="-1">请先选择省份</option>
</select>
<script language="javascript">
ProvinceOptionMenu();
</script>
* </font></td>
</tr>
</table>