Form

Form コレクションは、POST メソッドを使用してフォームから HTTP 要求本体にポストされた、フォーム要素の値を取得します。

構文

Request.Form( element )[( index )|.Count]

 

パラメータ
  • element
    コレクションが値を取得するフォーム要素の名前です。
  • index
    パラメータの複数の値のうちの 1 つにアクセスできるようにするための省略可能なパラメータです。1 ~ Request.Form( parameter ).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 オブジェクト

関連項目

ClientCertificateCookiesQueryStringServerVariables