Form コレクションは、POST メソッドを使用してフォームから HTTP 要求本体にポストされた、フォーム要素の値を取得します。
Request.Form(element)[(index)|.Count]
Form コレクションは、要求本体のパラメータ名別にインデックスが付けられます。Request.Form(element) の値は、要求本体に出現するすべての element の値の配列になります。パラメータの値の数は、Request.Form(element).Count を呼び出して調べることができます。パラメータに関連付けられている値が複数でない場合は、個数は 1 になります。パラメータが見つからない場合は、個数は 0 になります。
複数の値を持つフォーム要素のある値を参照するには、値を index で指定する必要があります。パラメータ index には 1 〜 Request.Form(element).Count までの値を指定できます。index の値を指定せずに複数のフォーム パラメータの 1 つを参照した場合、データはカンマで区切られた文字列として返されます。
Request.Form でパラメータを使用すると、Web サーバーはその HTTP 要求本体を解析して、指定されたデータを返します。未解析のフォーム データがアプリケーションで必要な場合は、パラメータを指定せずに Request.Form を呼び出すことで取得できます。
注 ASP を使用し、100 KB を超えるデータのポストを行う場合、Request.Form は使用できません。100 KB を超えるデータのポストをアプリケーションが必要とする場合、Request.BinaryRead メソッドを使用してコンポーネントを記述することができます。
ループを使用することで、フォーム要求内のすべてのデータ値を取得できます。たとえば、ユーザーが要素 FavoriteFlavor に対して Chocolate および Butterscotch という 2 つの値を指定してフォームに入力した場合、次のようなスクリプトを使用してこれらの値を取得できます。
<%
For i = 1 To Request.Form("FavoriteFlavor").Count
Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>
上のスクリプトの表示結果は、次のようになります。
Chocolate
Butterscotch
このループを使用して、次のスクリプトのようにパラメータ名を表示することができます。
<%
For i = 1 to Request.Form("FavoriteFlavor").count %>
Request.Form(FavoriteFlavor) = <%= Request.Form("FavoriteFlavor")(i)_
%> <BR>
<% Next %>
ブラウザには、次のように表示されます。
Request.Form(FavoriteFlavor) = Chocolate
Request.Form(FavoriteFlavor) = Butterscotch
次のようなフォームがあるとします。
<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>Your first name: <INPUT NAME = "firstname" SIZE = 48>
<P>What is your favorite ice cream flavor: <SELECT NAME = "flavor">
<OPTION>Vanilla
<OPTION>Strawberry
<OPTION>Chocolate
<OPTION>Rocky Road</SELECT>
<P><INPUT TYPE = SUBMIT>
</FORM>
このフォームから次の要求本体が送信されたとします。
firstname=James&flavor=Rocky+Road
次のスクリプトが使えます。
Welcome, <%= Request.Form("firstname") %>.
Your favorite flavor is <%= Request.Form("flavor") %>.
出力結果は、次のようになります。
Welcome, James. Your favorite flavor is Rocky Road.
次のようなスクリプトを使用したとします。
The unparsed form data is: <%= Request.Form %>
次のような出力が得られます。
The unparsed form data is: firstname=James&flavor=Rocky+Road
注 フォームに同じ名前を持つオブジェクト (HTML SELECT タグなど) が複数含まれている場合、Form コレクションの項目は、選択された値すべてがカンマで区切られている一覧になります。
Request オブジェクト
ClientCertificate、Cookies、QueryString、ServerVariables