4.1.3 读取浏览器提交的表单数据
1.Form数据集合
Form数据集合可以读取数据包中的数据。Element参数指定集合要检索的表格元素的名称。Index为可选参数,使用该参数可以访问某参数中多个值中的一个。Form集合通过使用Post方法的表格检索并发送到HTTP所请求的正文表格中的元素值,也就是说用户在一个Form(表单)中以Post方法发送数据时,Form中的数据被当做一个数据包,通过HTTP协议发送到服务器。
2.按请求正文中参数的名称来索引
Request.Form(element)的值是请求正文中所有element值的数组。通过调用Request.Form(element). Count来确定参数中值的个数。如果参数未关联多个值,则计数为1。如果找不到参数,计数为0。要引用有多个值的表格元素中的单个值,必须指定index值。index参数可以是从1到Request.Form(element). Count中的任意数字。如果引用多个表格参数中的一个,而未指定index的值,返回的数据将是以逗号分隔的字符串。
在使用Request.Form参数时,Web服务器将分析HTTP请求正文并返回指定的数据。如果应用程序需要未分析的表格数据,可以通过调用不带参数的Request.Form访问该数据。
3.Form集合的提交方式
Form集合是ASP所提供的用于得到客户端用户提交数据的集合之一,但Form集合只能读取用户用Post方式提交的数据,如果客户端表单中提交的某个元素其值不止一个而是多个时,就需要用到Form集合中的index和count。Form集合引用的一般格式为:
Request.Form(element)[(index)|.Count]
%注意:这里的index并不是Form集合中的属性,只是引用的一个变量名,而Count是Form集合中的 属性。
下面将举例说明,用户在使用网站前进行注册,通过Form方法提交。
在建立com.htm表单时,用Post方法提交,文件内容如下:
html head title新建网页/title /head body h3欢迎光临本站 /h3 form ACTION="login.asp"METHOD="post"NAME="login" p 姓 名:input type=text name=user size="20" br 公司名称:input type=text name=company size="20" br input type=submit name=bt value=提交 input type=reset name=bt value=清除 /form /body /html |
上面com.htm文件的执行结果如图4-5所示。请注意这里面Form的Method=“post”,也就是说,Text文本框里的内容在Submit按钮单击确认之后再发送到服务器端,由于Form的内容将作为HTTP请求的部分,ASP的Request对象特别指定了一个Form集合来进行相关处理。
Form集合的每一个键都对应于HTML Form的输入内容。例如com.htm里面只有两个键:name和company;分别对应两个文本框。若单独取出一个键值,其方法请参看下面的login.asp文件。
login.asp文件用于获取客户提交的数据:
html
head
title新建网页/title
/head
body
欢迎%=request.form("user")% 到来! '输出前台所提交的user值
您来自%=request.form("company")公司!% '输出前台提交的company值
/body
/html
|
在如图4-3所示的界面上单击【提交】按钮,就会执行login.asp文件,该文件的执行结果如图4-6所示。
![]() |
| 图4-5 输入名称 |
![]() |
| 图4-6 输出内容 |
执行login.asp的时候,注册用户和公司名就会显示在浏览器上,要注意对应com.htm文件中Form的Action必须是指向该ASP脚本的文件(login.asp)。必须提醒的一点是,HTML在Form中的文本如果为空,则脚本执行就会发生错误,对这种情况的判断和相应附加约束也很简单,在正是制作时应尽量避免出现对Form中某些为空的情况没有加以约束或判断。
若客户端的表单中出现了如下的程序段:
html head title新建网页/title /head body FORM ACTION="submit.asp" METHOD="post" P姓名:INPUT NAME="firstname" SIZE=20 /P P选择你的爱好:SELECT NAME="flavor" /P OPTION-请选择- OPTION篮球 OPTION足球 OPTION乒乓球 OPTION排球 /SELECT P INPUT TYPE=SUBMIT /FORM /body /html |
![]() |
| 图4-7 选择爱好 |
其执行结果如图4-7所示。
在这里要注意列表框中,用户可以同时选择多个项目。假设同时选择了篮球和乒乓球,那么在服务器端submint.asp程序中可以用如下的方式引用传递的值。
%
dim flavor
dim num
flavor=request.form("flavor")
response.write" h2 "&flavor&" /h2 br" '输出flavor的值并设置字体大小为H2
num=request.form("flavor").count
response.write" h2 "&num&" /h2 br" '输出num的值并设置字体大小为H2
for i=1 to num 'i是从1到num的一个值
flavor=request.form("flavor")(i)
response.write" h2 "&flavor&"/h2 br"'输出flavor的值并设置字体大小为H2
next
%
|
可以看出,对于值不为1的情况下仍然可以使用Request.Form来引用。但是如果要取得每一个具体的值,需要用Count属性来统计这个元素包含多少个参数值,然后利用一个循环将各值罗列出来。
| 回书目 上一节 下一节 |
|
· Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. |
· 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. |
|
||||
| · ASP.NET开发教程 · 专题:ASP.NET 2.0基础.. · LAMP技术精解 · 服务器节能与绿色IT · ARP攻击防范与解决方案 · Linux 集群技术专题 · Windows集群服务应用 · CISSP认证成长之路 |
· SQL Server 2008/2005.. · SQL Server入门到精通 · 网络工程师职业规划与.. · 浏览器的战国时代 · 运营商封堵ADSL共享 中.. · 微软出价446亿美元收购.. · 技术人求职简历完备手册 · 开源虚拟化技术Xen |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 · Windows集群服务应用 · 国际文档格式标准开战 |
· 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. · 访问控制列表(ACL)介绍 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · 三层交换技术专题 · Apache技术专题 · 企业数据恢复指南 · Windows集群服务应用 |
· 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · ASP.NET开发教程 · PHP开发应用手册 |
|||