小愚学ASP 第二篇:ASP互动编程第一步(在线测验)
蚂蚁电商3.0 2003-11-8 16:03:41www.BHAsp.com
[ 关键字 ] 学习,电脑报,小愚
《小愚学ASP》
第二篇:ASP互动编程第一步(在线测验)
----讲课:关大哥 听课:小愚
关大哥:传统的网络文件系统HTML最缺乏的是动感,传统HTML难以与用户进行有效地沟通,所以网络上产生了CGI、PHP、ASP等脚本语言,采用这些脚本语言很容易可以编写出动态的、交互的WEB应用程序,而ASP是各种脚本语言中开发速度最快的。
下边我们先来看互动编程的一个简单例子。
例程 2-1.asp
<HTML>
<HEAD>
<TITLE>ASP互动编程例程一</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<FORM METHOD="post" ACTION="2-1.asp">
姓 名:<INPUT TYPE="input" NAME="username">
<INPUT TYPE="submit" VALUE="确定">
</FORM>
<%
dim name
name=Request.Form("username")
Response.Write "你是姓名是:"
Response.Write name
%>
</BODY>
</HTML>
在本例中,先定义了一个表单(Form),并且规定了表单向本身提交
<form method="post" action="2-1.asp">
提交的方式是POST,执行 2-1.asp 文件,这时,如果用户向文本框里输入“关大哥”,则按确定后浏览器显示如下
本文包含相关图片如下
小愚:上面的html我知道,下边的<%%>我就#@%^!@
关大哥:别着急,我一句句解释给你听。
使用ASP进行交互操作就必定涉及到“变量”,变量是一个信息的储存单位,打个比方说,我们可以命名一个变量叫“水桶”,那么以后我们就可以直接使用“水桶”了,我们也可以随时改变“水桶”里面的数值或文字,那么第一句
dim name
就声明了一个变量“name”,这时“name”时面还是空的,接下来我们往“name”里边装东西:赋值。
name=Request.Form("username")
这里用到了ASP的内建对象Request来获取客户表单的信息,Request对象一共有五个集合,分别是:
1.QueryString集合:用于获取URL附加的参数
2.Form集合:用于获取客户表单FORM中的数据
3.Cookies集合:用于获取客户浏览器的Cookies信息
4.ServerVariables集合:用于获取服务器的环境变量
5.ClientCertificate集合:用于获取客户身份验证的信息
最常用到的是前面的两个集合,特别是Form集合,当HTML中使用表单FORM的POST方式提交数据时,全部提交的数据就在Form集合中。这时我们可以用 Request.Form("参数") 来获取用户提交的内容。在这里,“参数”是指表单FORM里面元素的名称。如上例的 username 。
那么现在变量“name”里面就储存了用户输入的名字了,接下来要把用户输入的名字在浏览器显示出来。
Response.Write "你是姓名是:"
Response.Write name
这里用到了ASP的另一个内建对象:Response。该对象的作用跟Request对象刚好相反,Request对象是用于获取客户端浏览器的信息,而Response对象是用于向客户端浏览器发送信息。这里使用了Response对象的Write方法,语法是:Response.Write 变量名或者字符串。注意使用字符串时要将字符串用"和"括起来,如"你的姓名是:"。
小愚:就这么简单啊?(我真是“水桶”,什么新知识都装得下,嘻嘻……)
关大哥:本来也不难嘛,不过这只是最简单的一个互动文件,在大多数情况下,我们都需要建立一个专门的ASP文件来处理用户提交的数据,现在网络上很流行在线测验,我们就来做一个简单的在线测验试试。
小愚:在线测验?那……应该如何做呢,用选择题的形式吗?
关大哥:对,就用单选题的形式,我们来做两个页面,一个显示题目,并把用户的数据提交到另一个ASP文件进行处理。
下边是显示题目的html文件:
例程 2-2.html
<HTML>
<HEAD>
<TITLE>互动例程二:在线测验</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="2-3.asp">
1.对二十世纪最有影响的科学家是:<br>
<INPUT Type=Radio Name=Q1 Value=0>李白
<INPUT Type=Radio Name=Q1 Value=1>李小龙
<INPUT Type=Radio Name=Q1 Value=2>黄飞鸿
<INPUT Type=Radio Name=Q1 Value=3>关外飞鸿<P>
2.二十一世纪最没有发展潜力的电脑硬件是:<br>
<INPUT Type=Radio Name=Q2 Value=0>硬盘
<INPUT Type=Radio Name=Q2 Value=1>键盘
<INPUT Type=Radio Name=Q2 Value=2>光盘
<INPUT Type=Radio Name=Q2 Value=3>磁盘<P>
<INPUT Type=Submit Value="看看我的分数">
</FORM>
</BODY>
</HTML>
下面是处理用户数据的ASP文件:
例程 2-3.asp
<%
dim quest1,quest2,count
quest1 = Request.Form("Q1")
quest2 = Request.Form("Q2")
count = 0
If quest1=3 then count=count+50
If quest2=3 then count=count+50
%>
<HTML>
<HEAD>
<TITLE>测验结果</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
</HEAD>
<BODY>
你的分数是:<%=count%>
</BODY>
</HTML>
首先在浏览器执行 2-2.html ,选择任意两个答案,结果显示如图
本文包含相关图片如下
点击“看看我的分数”,结果如图当然是100分啦(小愚:有没有搞错?你是二十世纪最有影响……?@^@?)
本文包含相关图片如下
小愚:这次我来解释好了,咳咳……开始了啊……我先讲ASP文件,HTML大家都能理解,我就不讲了……咳咳(第一百零八次清嗓子之后)
首先呢,先定义了三个“水桶”(关大哥:就是“变量”啦),然后分别往里边装东西……
dim quest1,quest2,count
quest1 = Request.Form("Q1")
quest2 = Request.Form("Q2")
count = 0
把FORM表单里的Q1元素的值(Value)赋值给变量quest1,把Q2元素的值(Value)赋值给变量quest2,接着设置变量count的初始值:0,这样当用户没有选择任何一个答案就提交时,我们就认为他交了白卷:0分。
If quest1=3 then count=count+50
If quest2=3 then count=count+50
接下来是计算测验分数,用上一篇讲过的IF函数。这里,我们先预定两个正确答案的值都是3(Value=3),然后用if函数进行判断,如果用户提交的数据是3(quest1=3),那么分数“count”就加50分。
你的分数是:<%=count%>
最后输出用户的测验分数,也即变量“count”最后的值。
这里用到了另一种输出方法:<%=变量%>。本方法只能用于只有一行ASP代码时,如果有多行代码,就只能使用“Response.Write 变量”来进行输出了。
关大哥:现在自己能编写简单的ASP了吧?
小愚:那还用说,我也来编一个在线考试,以前被老师考、家长考、上司考,现在终于轮到我考别人了!我还要编一个“小愚心理测验愚人节版”,以前老被别人捉弄,现在终于……
关大哥:只要修改一下题目以及答对时该加的分数就可以啦,做一下互动网页就这么简单,连小愚也一下学会了……
关大哥话音未落,只听小愚说:只能出两道题吗?我要出三道题怎么办?四道题呢……