ASP中如何使用 HTML 表格

來源:互聯網
上載者:User
使用 ASP Request 對象,您可以建立一個簡單而功能強大的指令碼來收集和處理 HTML 表格式資料。在本主題中,您將不僅學會如何建立基本的表格處理指令碼,而且還將獲得用於驗證 Web 服務器和使用者瀏覽器上的表格資訊的一些有用技術。

  關於 HTML 表格

  HTML 表格是收集 Web 資訊最常用的方法,是在 Web 頁上提供使用者介面控制項的特殊的 HTML 標籤的排列。文字框、按鈕和複選框都是典型的控制項,這些控制項使使用者和 Web 頁實現互動,並且將資訊提交給 Web 服務器。

  下面的 HTML 樣本產生一個表格,在表格中,使用者可以輸入姓名、年齡並包含一個將這些資訊提交給 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 服務器提交資訊時,使用者的 網頁瀏覽器請求用 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 服務器將返回下面的文本給使用者的 網頁瀏覽器:

  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 服務器之前,驗證使用者資訊。

  <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>



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.