ASP网页编程之我的ASP之旅:二级联动菜单制造
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用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=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.length;i++){
city_select.add(selects);
}
}
}
}
</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做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
页:
[1]