仓酷云

标题: ASP网页设计三级下拉框连动的数据库版 [打印本页]

作者: 分手快乐    时间: 2015-1-16 22:29
标题: ASP网页设计三级下拉框连动的数据库版
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;三级下拉框连动

数据库:
location
表1loaction地点地表
字段
loactionid
loactionname名字
表2district地点的区域表
字段
locationid
districtid
districtname
表3village地点的县区表
字段
districtid
villageid
villagename

<%OptionExplicit%>
<html>
<head>
<title>List</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<%
dimconn
dimrs
dimsql
dimcount
dimrs1
dimsql1
dimrs2
dimsql2
dimcount2



setconn=server.createobject("adodb.connection")
conn.open"provider=sqloledb;datasource=192.168.0.33;uid=sa;pwd=;database=location;"


sql="select*fromdistrictorderbylocationidasc"
setrs=conn.execute(sql)
%>
<scriptlanguage="JavaScript">
varonecount;
onecount=0;
subcat=newArray();
<%
count=0
dowhilenotrs.eof
%>
subcat[<%=count%>]=newArray("<%=trim(rs("districtname"))%>","<%=trim(rs("locationid"))%>","<%=trim(rs("districtid"))%>");
<%
count=count+1
rs.movenext
loop
rs.close
setrs=nothing
%>
onecount=<%=count%>;

functionchangelocation(locationid)
{
document.myform.smalllocation.length=0;

varlocationid=locationid;
vari;
document.myform.smalllocation.options[0]=newOption(==所选乡村的区域==,);
for(i=0;i<onecount;i++)
{
if(subcat[i][1]==locationid)
{
document.myform.smalllocation.options[document.myform.smalllocation.length]=newOption(subcat[i][0],subcat[i][2]);
}
}

}
</script>


<%sql2="select*fromvillageorderbydistrictidasc"
setrs2=conn.execute(sql2)
%>
<scriptlanguage="JavaScript">
varonecount2;
onecount2=0;
subcat2=newArray();
<%
count2=0
dowhilenotrs2.eof
%>
subcat2[<%=count2%>]=newArray("<%=trim(rs2("villagename"))%>","<%=trim(rs2("districtid"))%>","<%=trim(rs2("villageid"))%>");
<%
count2=count2+1
rs2.movenext
loop
rs2.close
setrs2=nothing
%>
onecount2=<%=count2%>;

functionchangelocation2(villageid)
{
document.myform.village.length=0;

varvillageid=villageid;
varj;
document.myform.village.options[0]=newOption(==所选区域的县区==,);
for(j=0;j<onecount2;j++)
{
if(subcat2[j][1]==villageid)
{
document.myform.village.options[document.myform.village.length]=newOption(subcat2[j][0],subcat2[j][2]);
}
}

}
</script>



</head>
<body>
<formname="myform"method="post">
标题:<inputtype="text"name="T2"size="20">

<inputtype="text"name="T3"size="20">

分类:<selectname="biglocation"size="1">
<optionselected>请选择你地点的省分</option>
<%

sql1="select*fromlocationorderbylocationnameasc"
setrs1=conn.Execute(sql1)
dowhilenotrs1.eof
%>
<optionvalue="<%=trim(rs1("locationid"))%>"><%=trim(rs1("locationname"))%></option>

<%
rs1.movenext
loop
rs1.close
setrs1=nothing
conn.Close
setconn=nothing
%>
</select><selectname="smalllocation">
<optionselectedvalue="">==一切区域==</option>
</select><selectname="village"size="1">
<optionselected>==一切县区==</option>
</select>


关头词:<inputtype="text"name="T4"size="20">

内容:<textarearows="9"name="S1"cols="51"></textarea>
</form>

</body>
</html>
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全
作者: 透明    时间: 2015-1-19 07:50
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者: 仓酷云    时间: 2015-1-24 11:25
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 小魔女    时间: 2015-2-1 08:35
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 再见西城    时间: 2015-3-6 15:10
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 灵魂腐蚀    时间: 2015-3-13 03:09
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: admin    时间: 2015-3-20 11:10
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2