问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ASP下拉列表联动代码

发布网友 发布时间:2022-04-24 19:17

我来回答

1个回答

热心网友 时间:2022-04-24 20:47

就拿最常用的“省市下拉列表联动”作为例子吧!

在我们制作网站会员注册信息时,一般会涉及到填写自己所在省/市,如果用input或textarea做成填写形式不太理想。所以大部分网站都会选择联动下来列表形式,做起来也不算很复杂,同时看上去也很轻松。

具体做法如下:

1.设计数据库

我们选用Access数据库。首先,新建名为database1.mdb的Access数据库

在database1.mdb数据库中建立两个表分别为province、city。具体字段设计如下:

Province(省)

具体字段:id—自动编号 ProvinceName—省名 ProvinceNo—省名编号 ProvinceOrder—省排序编号

省 id ProvinceName ProvinceNo ProvinceOrder

设计思想:id是表的自动编号,ProvinceName和ProvinceNo是必须的,前者是用来存储省名,后者则是联系表city必不可少的字段。至于ProvinceOrder则是用来给省名排序的,控制下拉列表中省名出现的位置,可以省略。

City(城市)

具体字段:id—自动编号 CityName—市名 CityNo—市名编号 CityOrder—市排序编号 ProvinceID—所在省编号

市 id
CityName
CityNo
CityOrder
ProvinceID

以下市名略。

设计思想:前面四项同Province表设计思想,ProvinceID字段将Province表和City表联系起来。

2.设计样式及编码

二级联动的样式很简单,在DreamWeaver 2004里向设计页面上放置两个select下拉菜单,分别取名为Province_select、City_select,它们都在名为form1的表单里。

编码需要用到html、vbscript及javascript。首先是连接数据库,我们用常用的<!--#include file="conn.asp"-->连接。conn.asp中代码略。

其次,用Javascript和Vbscript将Province和City表中的数据读出来并使Province_select和City_select联系起来,这一步是整个程序的关键所在。
代码如下:

<script language=JavaScript>
<%
dim sql,i,j
'//////////////////////////读出 Province 表//////////////////////////
set rs_Province=server.createobject("adodb.recordset")
sql="select * from Province order by ProvinceOrder"
rs_Province.open sql,conn,1,1
%>

var selects=[];
selects['xxx']=new Array(new Option('请选择城市……','xxx'));

<%
for i=1 to rs_s.recordcount
%>

selects['<%=rs_Province("ProvinceNo")%>']=new Array(
<%
'//////////////////////////读出 City 表//////////////////////////
set rs_City=server.createobject("adodb.recordset")
sql="select * from City where ProvinceID="&rs_Province("id")&" order by ProvinceOrder"
rs_City.open sql,conn,1,1
if rs_City.recordcount>0 then
for j=1 to rs_City.recordcount
if j=rs_City.recordcount then
%>

new Option('<%=trim(rs_City("CityName"))%>','<%=trim(rs_City("CityNo"))%>'));

<%else%>

new Option('<%=trim(rs_City("Cityname"))%>','<%=trim(rs_City("CityNo"))%>'),

<%
end if
rs_City.movenext
next
else
%>
new Option('','0'));

<%
end if
rs_City.close
set rs_City=nothing
rs_Province.movenext
next
rs_Province.close
set rs_Province=nothing
%>

<!--//////////JavaScript控制联动///////////-->
function chsel(){
with (document.form1){
if(province_select.value) {
city_select.options.length=0;
for(var i=0;i<selects[province_select.value].length;i++){
city_select.add(selects[province_select.value][i]);
}
}
}
}

</script>

最后,结合html,Javascript和Vbscript实现联动效果。代码如下:

<!--//////////////////////////Province_select下拉列表//////////////////////////-->
<select name="Province_select" onChange=chsel()>
<option value="xxx" selected>请选择省份……</option>
<%
dim tmpid '定义一个临时变量用来记住省id
tmpid=0

set rs_Province=server.CreateObject("ADODB.recordset")
sql="select * from Province order by ProvinceOrder"
rs_Province.open sql,conn,1,1
while not rs_Province.eof
tmpid=rs_Province("id")
%>
<option value="<%=rs_Province("ProvinceNo")%>" ><%=trim(rs_Province("ProvinceName"))%></option>
<%
rs_Province.movenext
wend
rs_Province.close
set rs_Province=nothing
%>
</select>

<!--//////////////////////////City_select下拉列表//////////////////////////-->
<select name="City_select">
<%
set rs_City=server.createobject("adodb.recordset")
sql="select * from City where ProvinceID="&tmpid&" order by CityOrder"
rs_City.open sql,conn,1,1
while not rs_City.eof
%>
<option value="<%=rs_City("CityNo")%>"><%=trim(rs_City("CityName"))%></option>
<%
rs_City.movenext
wend
rs_City.close
set rs_City=nothing
%>
</select>

至此,一个省市二级联动菜单程序便写好了。虽然代码不多,但反映的技术还是比较全面的

参考资料:http://blog.csdn.net/boigel/archive/2008/08/05/2772685.aspx

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
css布局绝对定位和相对定位疑惑? 湖北对口单招有哪些大学 湖北单招最好考的学校有哪些 玻璃隔断吗 《八佰》中的南岸刀子,《药神》中的沉默黄毛 有哪些适合新手养的蛇品种推荐? 新手喂养什么宠物蛇比较好? 色叔叔茜色是什么色 仓鼠上窜下跳一直不停,是什么原因? 禽医静心谈鸭黄病毒的主要症状有哪些?鸭子得了黄病毒怎么治疗? 能不能帮帮我,帮我找一些北师大版小学四年级下册的数学应用题及答案,急啊~~~~求求你了 翻译一下不要答案,只要翻译 只要翻译。 只要翻译!!! 北师大版四年级下册数学课堂作业第44面第四题怎么写 翻译翻译只要翻译。 英语只要翻译 只要翻译 只要文言文翻译,尽量全 “只要”翻译成古文有什么词 只要英语翻译 只要英文翻译 只要 英语翻译 中秋 资料 苗族过什么节传统节日 中国古时候的凤凰有几种,分别是什么名字,,我记的好像有一只叫青鸾。 lady gaga的reel cool空间链接你有吗 vb.net 读取xml文件指定内容 用javascript写的三级联动列表怎么在PHP后台用数据库关联? 于我所欲也里面的冰与前置句有哪些? 音响功放 猫咪总会在半夜突然兴奋,在家中疯狂跑酷,这是什么原因导致的? 当你家猫咪在家不停跑酷是因为什么? 猫咪为何半夜喜欢跑酷? 如何解决猫咪半夜追逐跑酷? 猫为什么白天不活动,专挑夜间跑酷? 猫为什么突然跑酷 港澳游跟团多少钱 港澳游跟团走需要多少钱? 我想问下去港澳游跟团多少钱才算是纯玩的,三千多一个人的算纯玩吗? 去港澳台旅游,G签的可以跟团走吗?如果自己去香港澳门旅游大约多少钱? 两个人去港澳旅游需要多少钱,跟团游 跟团去港澳带多少钱 5日香港澳门游多少钱 请问一下高手,扬州老鹅的做法本人真诚的想学?QQ是20 港澳游跟团的话大概多少钱,我们两个人。 去香港`住深圳 急求主题班会 &lt;我们在最美的年华相遇&gt;主持稿 开场白 关于老鹅 董卿畅谈“遇见”,这段开场白引经据典,每一句都很有格调!