马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全菜单|联动菜单这个成绩实在已蛮老了,不外作为刚学ASP3个月的我来讲,仍是有需要写上去强化本人的基本常识。
就拿最经常使用的“省市下拉列表联动”作为例子吧!
在我们制造网站会员注册信息时,一样平常会触及到填写本人地点省/市,假如用input或textarea做成填写情势不太幻想。以是年夜部分网站城市选择联动上去列表情势,做起来也不算很庞大,同时看上往也很轻松。
详细做法以下:
1.计划数据库
我们选用Access数据库。起首,新建名为database1.mdb的Access数据库
在database1.mdb数据库中创建两个表分离为province、city。详细字段计划以下:
Province(省)
详细字段:id―主动编号ProvinceName―省名ProvinceNo―省名编号ProvinceOrder―省排序编号
省idProvinceNameProvinceNoProvinceOrder1北京市002安徽省113山东省224江苏省33
以下省名略。
计划头脑:id是表的主动编号,ProvinceName和ProvinceNo是必需的,前者是用来存储省名,后者则是接洽表city必不成少的字段。至于ProvinceOrder则是用来给省名排序的,把持下拉列表中省名呈现的地位,能够省略。
City(乡村)
详细字段:id―主动编号CityName―市名CityNo―市名编号CityOrder―市排序编号ProvinceID―地点省编号
市 id
CityName
CityNo
CityOrder
ProvinceID
1
北京市
1
1
0
2
合肥市
2
2
1
3
芜湖市
3
3
1
4
安庆市
4
4
1
5 济南市
5
5
2
6 青岛市
6
6
2
以下市名略。
计划头脑:后面四项同Province表计划头脑,ProvinceID字段将Province表和City表接洽起来。
2.计划款式及编码
二级联动的款式很复杂,在Dreamweaver2004里向计划页面上安排两个select下拉菜单,分离取名为Province_select、City_select,它们都在名为form1的表单里。
编码必要用到html、vbscript及javascript。起首是毗连数据库,我们用经常使用的<!--#includefile="conn.asp"-->毗连。conn.asp中代码略。
其次,用Javascript和Vbscript将Province和City表中的数据读出来并使Province_select和City_select接洽起来,这一步是全部程序的关头地点。
代码以下:
<scriptlanguage=JavaScript>
<%
dimsql,i,j
//////////////////////////读出Province表//////////////////////////
setrs_Province=server.createobject("adodb.recordset")
sql="select*fromProvinceorderbyProvinceOrder"
rs_Province.opensql,conn,1,1
%>
varselects=[];
selects[xxx]=newArray(newOption(请选择乡村……,xxx));
<%
fori=1tors_s.recordcount
%>
selects[<%=rs_Province("ProvinceNo")%>]=newArray(
<%
//////////////////////////读出City表//////////////////////////
setrs_City=server.createobject("adodb.recordset")
sql="select*fromCitywhereProvinceID="&rs_Province("id")&"orderbyProvinceOrder"
rs_City.opensql,conn,1,1
ifrs_City.recordcount>0then
forj=1tors_City.recordcount
ifj=rs_City.recordcountthen
%>
newOption(<%=trim(rs_City("CityName"))%>,<%=trim(rs_City("CityNo"))%>));
<%else%>
newOption(<%=trim(rs_City("Cityname"))%>,<%=trim(rs_City("CityNo"))%>),
<%
endif
rs_City.movenext
next
else
%>
newOption(,0));
<%
endif
rs_City.close
setrs_City=nothing
rs_Province.movenext
next
rs_Province.close
setrs_Province=nothing
%>
<!--//////////JavaScript把持联动///////////-->
functionchsel(){
with(document.form1){
if(province_select.value){
city_select.options.length=0;
for(vari=0;i<selects[province_select.value].length;i++){
city_select.add(selects[province_select.value]);
}
}
}
}
</script>
最初,分离html,Javascript和Vbscript完成联动效果。代码以下:
<!--//////////////////////////Province_select下拉列表//////////////////////////-->
<selectname="Province_select"onChange=chsel()>
<optionvalue="xxx"selected>请选择省分……</option>
<%
dimtmpid界说一个一时变量用来记着省id
tmpid=0
setrs_Province=server.CreateObject("ADODB.recordset")
sql="select*fromProvinceorderbyProvinceOrder"
rs_Province.opensql,conn,1,1
whilenotrs_Province.eof
tmpid=rs_Province("id")
%>
<optionvalue="<%=rs_Province("ProvinceNo")%>"><%=trim(rs_Province("ProvinceName"))%></option>
<%
rs_Province.movenext
wend
rs_Province.close
setrs_Province=nothing
%>
</select>
<!--//////////////////////////City_select下拉列表//////////////////////////-->
<selectname="City_select">
<%
setrs_City=server.createobject("adodb.recordset")
sql="select*fromCitywhereProvinceID="&tmpid&"orderbyCityOrder"
rs_City.opensql,conn,1,1
whilenotrs_City.eof
%>
<optionvalue="<%=rs_City("CityNo")%>"><%=trim(rs_City("CityName"))%></option>
<%
rs_City.movenext
wend
rs_City.close
setrs_City=nothing
%>
</select>
至此,一个省市二级联动菜单程序便写好了。固然代码未几,但反应的手艺仍是对照周全的。但愿今后能多学点常识,写点更好的东东^_^
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |