ASP和HTML表單 (ASP and HTML Forms)

在 ASP 中,有兩個很常用的集合,一個是 Request.QueryString,另一個是 Request.Form。這兩個集合可以獲取 HTML 表單(HTML Forms) 提交的信息。

有關 HTML 表單,請參見 HTML 教程中的 HTML表單 一章。

Request.QueryString

HTML 表單中的 method 有兩種,一種是 get,另外一種是 post。當 HTML 表單的 method="get" 時,可以用 Request.QueryString 來獲取表單提交的信息。

以下是一個讓用戶輸入姓名的 HTML 表單示例。

 

<form action="http://book.chinaz.com/" method="get">
請輸入你的姓名:
<input type="text" name="yourname">
<input type="submit" value="提交">
</form>

該示例中,HTML 表單中使用的 method 爲 get,指向 action 的網頁是一個 .asp 文件,名字爲 yourname.asp。以下是 yourname.asp 文件的源代碼:

<html>
<head>
<title>姓名信息</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<p>你的姓名是:<%= Request.QueryString("yourname") %></p>
</body>
</html>

在這個 .asp 文件裏,你可以看到最關鍵的一句代碼是:

<p>你的姓名是:<%= Request.QueryString("yourname") %></p>

Request.QueryString 括號裏的 "yourname" 對應於 HTML 表單中的 input 輸入框的 name 值。

當使用 method="get" 提交表單信息時,用戶可以從地址欄看到這些提交信息。

Request.Form

當 HTML 表單中 method = "post" 時,可以用 Request.Form 來獲取 HTML 表單提交的信息。

以下是一個讓用戶輸入姓名和密碼的 HTML 表單示例。

<form  action="http://book.chinaz.com/html/asdocs/html_tutorials/userpw.asp" method="post">
請輸入你的姓名:<input type="text" name="yourname"><br>
請輸入你的密碼:<input type="password" name="yourpw"><br>
<input type="submit" value="提交">
</form>

該示例中,HTML 表單中使用的 method 爲 post,指向 action 的網頁是一個 .asp 文件,名字爲 userpw.asp。以下是 userpw.asp 文件的源代碼:

<html>
<head>
<title>用戶信息</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<p>你的姓名是:<%= Request.Form("yourname") %></p>
<p>你的密碼是:<%= Request.Form("yourpw") %></p>
</body>
</html>

在這個 .asp 文件裏,你可以看到最關鍵的兩句代碼是:

<p>你的姓名是:<%= Request.Form("yourname") %></p>
<p>你的密碼是:<%= Request.Form("yourpw") %></p>

Request.Form 括號裏的 "yourname" 和"yourpw" 各對應於 HTML 表單中的兩個 input 輸入框的 name 值。

當使用 method="post" 提交表單信息時,用戶不會從地址欄看到這些提交信息。

 

HTML表單中還有一些可供用戶選擇的表單控件,比如單選框 input type="radio",複選框 input type="checkbox",單選下拉框 select,複選下拉框 select multiple。

這些選擇性的控件示例,請參見 HTML表單教程。在這些示例中,action 指向的那個 .asp 文件叫 choose.asp。以下是 choose.asp 文件的源代碼:

<html>
<head>
<title>retrieve  information from form controls(radio, checkbox, select) </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
你選擇了:<br>
<% For counter = 1 To Request.Form("fruit").Count
  Response.Write  Request.Form("fruit")(counter) & "<br>"
Next
 %>
</body>
</html>

Request.Form 獲取的是一個集合 (collection)。Request.Form 集合有兩個參數,一個是 element,稱做元素,對應 HTML表單控件的 name 值;第二個是 index,稱做索引,表示 element 的第幾個值,index 從1開始計數。

用 Request.Form(element)(index) 可以引用 Request.Form 集合中某個元素的某個值。

比如 Request.Form("fruit")(1),表示"fruit"元素中的第一個值,Request.Form("fruit")(2) 表示"fruit"元素中的第2個值。

用 Request.Form(element).Count,可以得到集合中某個元素的值的總數量。

比如 Request.Form("fruit").Count 爲 3 的話,就表示 "fruit" 這個元素有3個值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章