當使用者填寫頁面<FORM>內容時所提供的全部值,或在瀏覽器地址欄輸入在URL後的值,通過Form和QueryString集合為ASP指令碼所用。這是在ASP代碼中訪問值的一種簡單方法。
1、 訪問ASP集合的一般技術
大多數ASP集合與在VB中見到的普通集合相差不多。實際上,它們是值的數組,但能通過使用一個文本字串鍵(對大小不敏感)以及一個整型索引進行訪問。因此,假如用戶端Web頁麵包含的<FORM>如下:
<FORM ACTION=”show_request.asp” METHOD=”POST”>
FirstName:<INPUT TYPE=”TEXT” NAME=”FirstName”>
LastName:<INPUT TYPE=”TEXT” NAME=”LastName”>
<INPUT TYPE=”SUBMIT” VALUE=”Send”>
</FORM>
可通過訪問ASP的Form集合來訪問其控制項內的值:
strFirstName = Request.Form(“FirstName”)
strLastName = Request.Form(“LastName”)
也可使用表單中控制項的整型索引,索引的範圍從在HTML中第一個定義的控制項開始,然後根據定義的順序排序:
strFirstName = Request.Form(1)
strLastName = Request.Form(2)
然而,後面的這種以整型為索引的技術不推薦使用,因為一旦有HTML中的控制項發生了變化,或者插入一個新的控制項,則ASP代碼將得到錯誤的值。進一步而言,對於閱讀代碼的人來講,極容易混淆。
1) 訪問集合的全部值
可以通過引用集合把整個Form上的一系列值變成單個的字元變數,且不用提供鍵或索引。
StrAllFormContent = Request.Form
假如文字框包含值Priscilla和Descartes,則Request.Form語句將返回下列字元:
FirstName=Priscilla&LastName=Descartes
注意,提供的值是以成對的名稱和數值的形式出現的(即控制項名稱=控制項值),並且每一對名稱/值相互之間是用符號“&”相分隔的。假如打算把表單中的內容傳遞單獨的,希望得到值的標準格式的可執行應用程式或DLL,這個技術是很有用的。然而,一般說來,都是通過以表單中控制項的名稱為文本鍵來訪問集合中的內容。
2) 遍曆一個ASP集合
有兩種方式遍曆一個ASP集合中的所有成員,方式與普通VB集合的基本相同。每個集合提供一個Count屬性,返回的是集合中條目數量。可通過使用一個整型索引使用Count屬性來遍曆。
For intLoop=1 To Request.Form.Count
Response.Write Request.Form(intLoop) & “<BR>”
Next
假如先前的表單包含Priscilla和Descartes值的兩個文字框,將得到如下結果:
Priscilla
Descartes
然而,更好的方法是使用For Each...Next結構。
For Each objItem In Request.Form
Response.Write objItem & “=” & Request.Form(objItem) & “<BR>”
Next
這帶來的好處是既可以訪問控制項的名稱又可訪問其值。上述代碼將得到如下結果:
FirstName = Priscilla
LastName = Descartes
注意,一些瀏覽器返回到ASP的<FORM>值可能與頁面上顯示的順序不盡相同。