📄 15-1.cfm.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>在这章中</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在这章中,你会学到怎样处理多个主页。在第一部分,你会学到怎样从</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">中接受信息。在第二部分中,将会讨论一些接受和处理</font><font
FACE="宋体" SIZE="3">Query</font><font SIZE="3">字段的方法,第三部分,你会学会如何引导用户到一个新的主页地址,第四部分,则是在</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">中如何包容另一个</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">。</p>
</font><b><font SIZE="5">
<p ALIGN="JUSTIFY">从</font><font FACE="宋体" SIZE="5">HTML</font><font SIZE="5">的</font><font
FACE="宋体" SIZE="5">Form</font><font SIZE="5">中接受信息</p>
</font></b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">一般来说,你应当将</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">FORM</font><font
SIZE="3">作为最主要的主页间传递信息的手段,使用户能够和你的</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">充分实现交互和信息传递的最可靠手段就是它。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果你需要先去了解一下</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">的类型和创建方法,请先到本书的第</font><font
FACE="宋体" SIZE="3">6</font><font SIZE="3">章。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">利用</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">来传递用户的信息是最可靠的,因为它适用于任何浏览器,你当然也可以选择其他很多种方法,例如</font><font
FACE="宋体" SIZE="3">Java applet, ActiveX</font><font SIZE="3">控件,甚至是</font><font
FACE="宋体" SIZE="3">Adobe Acrodat</font><font SIZE="3">文件创建,但是如果你的网站希望针对的是广域网上更多层次的使用者,笔者建议还是应当以</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">为主。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">假设你希望用户在使用网站前进行一个注册过程,那么显然你应当使用一个</font><font
FACE="宋体" SIZE="3">HTML Form, </font><font SIZE="3">如下面这个例子:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">注册页</font><font
FACE="宋体" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><h4></font><font SIZE="3">迈至科网络</font><font
FACE="宋体" SIZE="3">ASP</font><font SIZE="3">教程注册页示例:</font><font
FACE="宋体" SIZE="3"></h4></p>
<p ALIGN="JUSTIFY"><FORM Method=</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">post</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Action=</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">reresults.asp</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">></p>
<p ALIGN="JUSTIFY"><p></font><font SIZE="3">请输入姓名:</font><font
FACE="宋体" SIZE="3"><input name=</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> type=</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">text</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">><br></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">所在公司:</font><font FACE="宋体" SIZE="3"><input name=</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">usercompany</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3"> type=</font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">text</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">></p>
<p ALIGN="JUSTIFY"><br></p>
<p ALIGN="JUSTIFY"><input type=submit value=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3"> </font><font SIZE="3">确认注册</font><font FACE="宋体"
SIZE="3"> </font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">></p>
<p ALIGN="JUSTIFY"></body></p>
<p ALIGN="JUSTIFY"></html></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">那么相信看到这里的读者应当十分熟悉</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">了,显示结果应当想象到了(见图</font><font
FACE="宋体" SIZE="3">15.1</font><font SIZE="3">)。(如果不是的话,请先看本书第</font><font
FACE="宋体" SIZE="3">6</font><font SIZE="3">章或者其他主页入门书籍。)那么主页的介绍就不在多写了,请注意这里面的</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">method=post</font><font
SIZE="3">,也就是说,</font><font FACE="宋体" SIZE="3">text</font><font SIZE="3">文本框内容在</font><font
FACE="宋体" SIZE="3">submit</font><font SIZE="3">按钮点击确认后会传送到服务端,由于</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">的内容将作为</font><font
FACE="宋体" SIZE="3">HTTP</font><font SIZE="3">请求的一部分,那么细心的读者应当已经意识到可以用</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">的</font><font
FACE="宋体" SIZE="3">Request</font><font SIZE="3">对象来处理了,针对这种目的,</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">的</font><font
FACE="宋体" SIZE="3">Request</font><font SIZE="3">对象特别指定了一个</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">集合来进行相关处理。</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">集合就可以包含所有添入</font><font
FACE="宋体" SIZE="3">HTML Form</font><font SIZE="3">的信息。</p>
</font><b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">图</font><font FACE="宋体" SIZE="3">15.1 </font><font
SIZE="3">注册表单的一个简单例子</p>
<p><img SRC="../Image116.gif" tppabs="http://210.74.168.175/guide/asp/Image116.gif" WIDTH="531" HEIGHT="352" ALIGN="LEFT"> </font><font
FACE="宋体" SIZE="3"></p>
</b>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p><b><font SIZE="3"> </font></b></p>
<p ALIGN="JUSTIFY">Form</font><font SIZE="3">集合的每一个键都对应于</font><font
FACE="宋体" SIZE="3">HTML Form</font><font SIZE="3">的输入内容。例如,上面那个简单的例子里面只有两个键:</font><font
FACE="宋体" SIZE="3">username</font><font SIZE="3">和</font><font FACE="宋体"
SIZE="3">usercompany</font><font SIZE="3">;分别对应于两个文本框。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">单独取出一个键值的方式见下面这个脚本(</font><font
FACE="宋体" SIZE="3">reresults.asp</font><font SIZE="3">对应于</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">action</font><font
SIZE="3">):</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">注册处理</font><font
FACE="宋体" SIZE="3">1</TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">迈至科技术人员谢谢</font><font FACE="宋体" SIZE="3"><%=Request.form(</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">username</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)%></font><font SIZE="3">的注册!</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></body></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这页执行的时候,注册用户的姓名就会显示在浏览器上,特别注意对应于上面</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">中的</font><font FACE="宋体" SIZE="3">Action</font><font SIZE="3">必须是指向这个脚本。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">还有一点必须提醒的是,在</font><font
FACE="宋体" SIZE="3">HTML</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">中的文本框如果是空的,那么脚本执行就会报错,当然对这种情况的判断和相应附加约束也很简单,但是现在为了简化目前的主要问题,还没有涉及到,希望用户有所了解,在正式制作这种应用时,要尽量避免出现对</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">中某些区域空的情况没有约束或判断的现象。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">很多互联网上都使用了附加页来感谢客户的注册等等,通常这就需要了解上一个主页的</font><font
FACE="宋体" SIZE="3">FORM</font><font SIZE="3">中的内容,这种情况下,就需要</font><font
FACE="宋体" SIZE="3">request.form</font><font SIZE="3">了。</p>
</font><b><font FACE="宋体">
<p ALIGN="JUSTIFY">Form</font>集合多个内容的处理显示</p>
</b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果想把上个主页</font><font
FACE="宋体" SIZE="3">form</font><font SIZE="3">中所有内容显示出来,有好几种方法,如果你希望循环的将所有内容依次显示,可以参照下例:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">FOR EACH name IN Request.Form</p>
<p ALIGN="JUSTIFY">Response.Write(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3"><BR></font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">&name&</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">=</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">)</p>
<p ALIGN="JUSTIFY">Response.Write(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Request.Form(name))</p>
<p ALIGN="JUSTIFY">NEXT</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">那么这个脚本就会依次将上个</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">中传递的键名和相应值成对显示出来:例如,如果迈至科公司的谢建云进行了注册,那么显示结果为:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">USERNAME=</font><font SIZE="3">谢建云</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">USERCOMPANY=</font><font SIZE="3">迈至科公司</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">请注意这里面的键名是大写的,其实在</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">的集合中,尽可以不去理会这些,因为大小写是通用的,也就是说,</font><font
FACE="宋体" SIZE="3">UserName</font><font SIZE="3">和</font><font FACE="宋体"
SIZE="3">uSeRnaMe</font><font SIZE="3">对于服务端处理是完全一样的。</p>
<p ALIGN="JUSTIFY">除了</font><font FACE="宋体" SIZE="3">FOR EACH</font><font SIZE="3">循环外,你当然也可以用</font><font
FACE="宋体" SIZE="3">For ...Next</font><font SIZE="3">循环,下面的脚本也会显示每个键的值。(但是不会显示键的名称)</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">FOR I=1 to Request.form.Count</p>
<p ALIGN="JUSTIFY">Response.Write(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3"><BR></font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">&Request.form(i))</p>
<p ALIGN="JUSTIFY">NEXT</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">在这里面</font><font FACE="宋体" SIZE="3">Count</font><font
SIZE="3">属性可以用来了解具有</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">的主页在提交时具体有多少个</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">域被填写或选择(键)。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">最后,对于如果</font><font FACE="宋体"
SIZE="3">Form</font><font SIZE="3">集合中提交项,你只希望看到的是简单的</font><font
FACE="宋体" SIZE="3">URL-encoded</font><font SIZE="3">字串(在程序调试过程中,这几乎是肯定会用的),还可以只是用下面这个脚本:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%=Request.Form%></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">下面是显示结果,(依然假设为迈至科公司谢建云注册,同时注意显示为小写)</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">username=</font><font SIZE="3">谢建云</font><font FACE="宋体"
SIZE="3">&usercompany=</font><font SIZE="3">迈至科公司</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">这里面,</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">域名得到了保持,因为这时</font><font FACE="宋体" SIZE="3">HTTP</font><font
SIZE="3">的</font><font FACE="宋体" SIZE="3">Post</font><font SIZE="3">内容尚未经过解析。</p>
</font><b><font FACE="宋体">
<p ALIGN="JUSTIFY">FORM</font>的域对应多值的处理</p>
</b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">有时,</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">的某个域对应多个值,例如,对于</font><font FACE="宋体" SIZE="3">checkbox</font><font
SIZE="3">类型来说,实现多项选择是最拿手的,看下面这个</font><font
FACE="宋体" SIZE="3">HTML Form</font><font SIZE="3">。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><FORM METHOD=</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">POST</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> ACTION=</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">regresults.asp</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">></p>
</font><font SIZE="3">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -