仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 424|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之我的ASP之旅:二级联动菜单制造

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
不帅 该用户已被删除
沙发
发表于 2015-1-18 22:37:19 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
若天明 该用户已被删除
板凳
发表于 2015-1-25 13:45:16 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
再现理想 该用户已被删除
地板
发表于 2015-2-2 22:19:33 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
5#
发表于 2015-2-8 14:10:37 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
爱飞 该用户已被删除
6#
发表于 2015-2-25 19:04:22 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-8 01:57:36 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
海妖 该用户已被删除
8#
发表于 2015-3-15 20:25:43 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-22 04:09:33 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表