一个表单中有几个SELECT,分别为省、市、县,省市县分别有数据库,我想实现这种功能,当用户选择一个省的时候,市的内容会根据所选的省的不同而动态变成相应省中的市,然后县也会根据所选市的不同变成相应的县,这三个都要调用相应的数据库,市中有省的ID,县中有省,市的ID,该如何实现?
---------------------------------------------------------------
近来问连动下拉列表的人很多,我就自己做了一个,自己暂时不用,完全是给大家分享的,数据库结构采用常见的省份和城市,数据库结构结构来自csdn某文章,大家可以自己改。有什么意见请提出来,要代码文件和数据库请开贴放分并且留下email。
Access数据库
● 数据库名:DB_ProvinceCat
● 表名:1)Tb_Province 2)Tb_City
说明:表Tb_Province用来存放省份名称;表Tb_City用来存放相应的城市名称。
● 字段名的设计
1) 表Tb_Province的字段有省份ID号(ProvinceCatID)、省份代码(ProvinceCode)、省份名称(ProvinceName),表1给出了示例:
ProvinceCatID ProvinceCode ProvinceName
1 01 北京市
2 02 上海市
3 03 天津市
4 04 重庆市
5 05 广东省
6 06 浙江省
7 07 福建省
8 08 海南省
9 09 江苏省
表1
2) 表Tb_City的字段有城市ID号(CityID)、城市代码(CityCode)、城市名称(CityName),表2给出了示例:
CityID CityCode CityName
1 01001 北京市
2 02001 上海市
3 03001 天津市
4 04001 重庆市
5 05001 广州市
6 05002 深圳市
7 05003 珠海市
8 05004 茂名市
9 05005 中山市
10 06001 杭州市
11 06002 温州市
12 07001 福州市
13 07002 厦门市
14 08001 海口市
15 08002 三亚市
16 08003 万宁市
17 08004 五指山市
18 09001 南京市
19 09002 苏州市
表2
说明:这里要注意的一点就是,身份代码要对应城市代码的头两位。
文件:TwoSelect.asp经简单测试好用!
1<html>
2<head>
3<meta content="VBScript" name="VI60_defaultClientScript"/>
4<meta content="Microsoft Visual Studio 6.0" name="GENERATOR"/>
5</head>
6<body>
Dim Cn,Rs
Dim SQL,StrDSN
Dim MyArray()
Set cn=Server.CreateObject("ADODB.connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
StrDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB_ProvinceCat.mdb")
Cn.Open strDSN
SQL="select * from Tb_Province order by ProvinceCatID"
Rs.Open SQL,cn,3,2
Rs.MoveFirst
redim MyArray(Rs.RecordCount-1)
1<table border="0" cellpadding="0" cellspacing="0" width="273">
2<tr>
3<td width="96"> <select id="select1" name="select1" style="WIDTH: 96px">
4<option =rs("provincecode")="" ```="" selected="" value="select```">```
5=Rs("ProvinceName")
6```</option>
MyArray(0)=Rs("ProvinceCode")
Rs.MoveNext
for i=1 to Rs.RecordCount-1
1<option =rs("provincecode")="" ```="" value="select```">```
2=Rs("ProvinceName")
3```</option>
MyArray(i)=Rs("ProvinceCode")
Rs.MoveNext
next
1</select>
Rs.Close
1</td>
2<td width="96">
for i=0 to ubound( MyArray)
SQL="select * from Tb_City where CityCode like '" & MyArray(i) & "%'"
'Response.End
Rs.Open SQL,cn,3,2
if Rs.RecordCount >0 then
Rs.MoveFirst
1<select =myarray(i)="" ```="" id="select```" name="select```" style="WIDTH: 96px;display='none'">
do while not Rs.EOF
1<option ```"="" cityname")="" value="```
2=Rs(">```
3=Rs("CityName")
4```</option>
Rs.MoveNext
loop
1</select>
end if
Rs.Close
next
1<script language="vbscript">
2<!--
3
4dim Province,City
5dim obj,lastObj
6lastObj="select01"
7window.execScript "select01.style.display='block'" ,"vbs"
8Province="北京市"
9City="北京市"
10Sub select1_onchange
11obj=select1.value
12if obj<>lastObj then
13window.execScript Obj & ".style.display='block'" ,"vbs"
14window.execScript lastObj & ".style.display='none'" ,"vbs"
15Province=select1.options(select1.selectedIndex).innertext
16window.execScript "City=" & Obj & ".value" ,"vbs"
17lastObj=select1.value
18end if
19End Sub
20sub SubMe()
21window.execScript "City=" & Obj & ".value" ,"vbs"
22window.location.href="TwoSelect.asp?Province=" & Province & "&City=" & City
23End Sub
24\-->
25</script>
26</td>
27<td width="81"><input name="Submit" onclick="vbs:SubMe" type="button" value="按钮"/></td>
28</tr>
29</table>
30</body>
31</html>