="wuf14.asp">
英文姓名: <input type="text" name="Ename"> <br>
中文姓名: <input type="text" name="Cname"><br>
性别: <select name="gender">
<option>男</option>
<option>女</option>
</select> <br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
再编写一个wuf13.htm需用到的文件wuf14.asp收集数据:
<%@ Language=VBScript %>
<% 'wuf14.asp
Option Explicit
Response.Expires=0
Dim StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Trim函数用来除首尾空格
StrCname = Trim(Request.QueryString("Cname"))
StrGender = Trim(Request.QueryString("gender"))
%>
<HTML><BODY>
英文姓名: <%= StrEname%><Br><Br>
中文姓名: <%= StrCname%><Br><Br>
性别: <%= StrGender%><Br><Br>
看看提交的字符串: <Br>
<%= Request.ServerVariables("Query_String")%>
</BODY></HTML>
为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果,你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在地址栏中直接输入“http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女”,居然也得到了同样的结果。所以你可以这样看,wuf13.htm的结果就是得到了类似这样的一个带参数的链接。而Request.QueryString则是从http:// 地址的附加参数中读取各个数据。
实际上,当按“提交”按钮后,查询字符串(输入的数据)会以参数的形式附加到URL地址后(各参数间以“&”分隔),达到传递数据的目的。同时,注意浏览器中显示的查询字符串中没有中文,而是不认识的含百分号的乱码,这是因为进行了编码的缘故。最后,与前面一样,这两个程序也可合并为一个程序(例程wuf15.asp,需去我站点下载)。
几点说明:
1. 若使用POST方法提交数据,则Request.ServerVariables("Content_Length")>0。
若使用GET方法提交数据,则Request.ServerVariables("Query_String") <> ""。
2. 弄懂原理后,你完全可以在同一个ASP文件中混合使用Request.Form和Request.QueryString。
3. 如果在一个Form表单中,有几个按钮,你如何确定用户按了哪个按钮?如果留意的话,会发现例程wuf11.asp中有一句,“提交”按钮的值也被传送,而wuf13.htm中生成的查询字符串最后也可以找到类似的值。请注意:只有被按按钮的值被传送,而其他按钮的值为””,这就是判断依据(《中计报》InfoWeb网站有一篇类似文章)。
英文姓名: <input type="text" name="Ename"> <br>
中文姓名: <input type="text" name="Cname"><br>
性别: <select name="gender">
<option>男</option>
<option>女</option>
</select> <br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
再编写一个wuf13.htm需用到的文件wuf14.asp收集数据:
<%@ Language=VBScript %>
<% 'wuf14.asp
Option Explicit
Response.Expires=0
Dim StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Trim函数用来除首尾空格
StrCname = Trim(Request.QueryString("Cname"))
StrGender = Trim(Request.QueryString("gender"))
%>
<HTML><BODY>
英文姓名: <%= StrEname%><Br><Br>
中文姓名: <%= StrCname%><Br><Br>
性别: <%= StrGender%><Br><Br>
看看提交的字符串: <Br>
<%= Request.ServerVariables("Query_String")%>
</BODY></HTML>
为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果,你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在地址栏中直接输入“http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女”,居然也得到了同样的结果。所以你可以这样看,wuf13.htm的结果就是得到了类似这样的一个带参数的链接。而Request.QueryString则是从http:// 地址的附加参数中读取各个数据。
实际上,当按“提交”按钮后,查询字符串(输入的数据)会以参数的形式附加到URL地址后(各参数间以“&”分隔),达到传递数据的目的。同时,注意浏览器中显示的查询字符串中没有中文,而是不认识的含百分号的乱码,这是因为进行了编码的缘故。最后,与前面一样,这两个程序也可合并为一个程序(例程wuf15.asp,需去我站点下载)。
几点说明:
1. 若使用POST方法提交数据,则Request.ServerVariables("Content_Length")>0。
若使用GET方法提交数据,则Request.ServerVariables("Query_String") <> ""。
2. 弄懂原理后,你完全可以在同一个ASP文件中混合使用Request.Form和Request.QueryString。
3. 如果在一个Form表单中,有几个按钮,你如何确定用户按了哪个按钮?如果留意的话,会发现例程wuf11.asp中有一句,“提交”按钮的值也被传送,而wuf13.htm中生成的查询字符串最后也可以找到类似的值。请注意:只有被按按钮的值被传送,而其他按钮的值为””,这就是判断依据(《中计报》InfoWeb网站有一篇类似文章)。