程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> ASP系列講座(十五)使用 HTML 表格

ASP系列講座(十五)使用 HTML 表格

編輯:ASP入門教程
使用 ASP Request 對象,您可以創建一個簡單而功能強大的腳本來收集和處理 Html 表格數據。在本主題中,您將不僅學會如何創建基本的表格處理腳本,而且還將獲得用於驗證 Web 服務器和用戶浏覽器上的表格信息的一些有用技術。

關於 Html 表格
HTML 表格是收集 Web 信息最常用的方法,是在 Web 頁上提供用戶界面控件的特殊的 Html 標記的排列。文本框、按鈕和復選框都是典型的控件,這些控件使用戶和 Web 頁實現交互,並且將信息提交給 Web 服務器。

下面的 Html 示例產生一個表格,在表格中,用戶可以輸入姓名、年齡並包含一個將這些信息提交給 Web 服務器的按鈕。該表格也包含了一個隱含的控件(Web 浏覽器不顯示),可以用該控件向 Web 浏覽器傳遞附加信息。

<FORM METHOD="POST" ACTION="myfile.ASP">
<INPUT TYPE="text" NAME="firstname"> 
<INPUT TYPE="text" NAME="lastname">
<INPUT TYPE="text" NAME="age">
<INPUT TYPE="hidden" NAME="userstatus" VALUE= "new">
<INPUT TYPE="submit"  VALUE="Enter">
</FORM>
處理 ASP 輸入的表格
在表格向 Web 服務器提交信息時,用戶的 Web 浏覽器請求用 Html <FORM > 標記的 ACTION 屬性所指定的 .asp 文件(在前面的例子中,該文件被稱為 Myfile.asp)。.ASP 文件包含了處理表格值(如顯示結果表或從數據庫查詢信息)的腳本。

可以通過三種途徑用 .ASP 文件收集 Html 表格的值

靜態的 .htm 文件可以包含一個將其數值郵送給 .ASP 文件的表格。 
.asp 文件可以創建一個將其信息郵送給另一個 .ASP 文件的表格。 
.ASP 文件可以創建一個將其信息郵送給自身的表格,即包含該表格的文件。 
前兩個方法的操作方式相同,當表格與網關程序交互時,除 ASP 之外,可以包含讀取和響應用戶選擇的命令。

創建一個包含表格定義且傳送信息給自身的 .ASP 文件較復雜,但卻是有很強功能的處理表格的方法。這一過程在 驗證表格輸入 中演示。

獲得表格輸入
ASP Request 對象提供了兩種集合,在很大程度上簡化了檢索附加在 URL 請求上的表格信息的任務。

QueryString 集合
QueryString 集合獲取作為跟在請求的 URL 的問號後面的文本傳遞給 Web 服務器的值。通過使用 HTTP GET 方法或手工將表格的值添加到 URL,表格的值可以被附加在請求的 URL 之後。

例如,如果先前的表格示例使用 GET 方法 (ACTION = "GET") 且用戶鍵入 Jeff、Smith 和 30,那麼下面的 URL 請求將被發送給服務器:

http://scripts/Myfile.ASP?firstname=Jeff&lastname=Smith&age=30&userstatus=new
Myfile.ASP 包含下面的表格處理腳本:

Hello, <%= Request.QueryString("firstname") %>   <%= Request.QueryString("lastname") %>. 
You are  <%= Request.QueryString("age") %>  years old.


<%
If Request.QueryString("userstatus")  = "new user" then 
  Response.Write"This is your first visit to this Web site!"
End if 
%> 
在這種情況下,Web 服務器將返回下面的文本給用戶的 Web 浏覽器:

Hello, Jeff Smith. You are 30 years old. This is your first visit to this Web site!
QueryString 集合有一個可選參數,可用來訪問顯示在請求正文中的多個值中的一個。也可以使用 Count 屬性計算一個特殊類型的值的出現次數。

例如,表格包含一個多項目的列表框可以提交下面的請求:

http://list.ASP?food=apples&food=olives&food=bread
您也可以使用下面的命令去對多個值計數:

Request.QueryString("food").Count
如果想顯示多個值的類型,List.ASP 應包含下面的腳本;

<%Total = Request.QueryString("food").Count%>
<%For i = 1 to Total%>
  <%= Request.QueryString("food")(i)  %> <BR>
<%Next%>
上述腳本將顯示: 
apples
olives
bread
Form 集合
當使用 HTTP GET 方法去向 Web 服務器傳遞長而復雜的表格值時,將可能丟失信息。大多數的 Web 服務器傾向於嚴格控制 URL 查詢字符串的長度,以便用 GET 方法傳送的冗長的表格值被截斷。如果您需要從表格發送大量信息到 Web 服務器,就必須使用 HTTP POST 方法。此法用於在 HTTP 請求正文中發送表格數據,而且發送的字符的個數可以無限多。也可以使用 ASP Request 對象的 Form 集合檢索用 POST 方法發送的值。

Form 集合與 QueryString 集合存儲數值的方式相同。例如,如果用戶用一長串名稱填充表格,您就可以用下面的腳本檢索這些名稱:

<% For i = 1 to Request.Form.Count %>
<% =Request.Form("names")(i) %>
<% Next %>
驗證表格輸入
一個好的表格處理腳本在處理數據前,應先驗證輸入表格的信息是否有效。驗證腳本可以檢驗用戶輸入到表格的信息類型是否正確。例如,如果您的 Web 站點包含一個表格,該表格允許用戶計算財務信息,那麼在處理結果之前,需要驗證用戶確實輸入了數值信息而不是文本。

一個非常方便的驗證表格輸入的方法是創建一個向自身傳遞信息的表格。在這種情況下,.ASP 文件包含可獲取信息的表格。例如,下面的腳本通過向自身傳遞信息來驗證用戶是否在 "age" 表格字段中輸入了數值:

<% If Isnumeric(Request.QueryString("Age")) then %> 
  <p>Hello, your age is <%=Request.QueryString("age")%>
<%Else %>
  <p>Please enter a numerical age.
<%End If %> 

<FORM METHOD= "POST"  ACTION="verify.ASP"  >   
Name: <INPUT TYPE="text" NAME="Name" >
Age:  <INPUT TYPE="text" NAME="Age" >
<INPUT TYPE="submit" VALUE="Enter"> 
</FORM>
在這個例子中,腳本也在包含表格的同一 Verify.asp 文件中。表格通過在 ACTION 屬性中指定 Verify.ASP 向自身傳送信息。

您也可以創建客戶端腳本來檢驗用戶是否輸入了有效的信息。驗證用戶在 Web 浏覽器上的輸入除了更迅速地向用戶提示表格項錯誤外,還可以減少 Web 服務器的網絡流量。下面的腳本運行在用戶的 Web 浏覽器上,在將信息提交到 Web 服務器之前,驗證用戶信息。

<SCRIPT LANGUAGE="VBScript">
<!--
Sub btnEnter_OnClick
  Dim TheForm
  Set TheForm = Document.MyForm
  If IsNumeric(TheForm.Age.Value) Then     
    TheForm.submit 
  Else
    Msgbox "Please enter a numerical age." 
  End if
End Sub
//-->
</SCRIPT>

<FORM  METHOD= "POST" NAME= MyForm  ACTION="myfile.ASP"  >   
Name: <INPUT TYPE="text" NAME="Name" >
Age:  <INPUT TYPE="text" NAME="Age" >
<INPUT TYPE="button" NAME="btnEnter"  VALUE="Enter"> 
</FORM>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved