Form

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

構文

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

パラメータ

parameter

コレクションが値を取得するフォーム要素の名前を指定します。

index

パラメータの複数の値のうちの 1 つにアクセスできるようにするための省略可能なパラメータです。1 から Request.Form(parameter).Count までの整数値を指定できます。

解説

Form コレクションは、要求本体の中のパラメータ名別にインデックスが付けられます。Request.Form(parameter) の値は、要求本体の中に出現するすべての parameter の値の配列になります。パラメータの値の数は Request.Form(parameter).Count を呼び出して調べることができます。パラメータに関連付けられている値が複数でない場合は、個数は 1 になります。パラメータが見つからない場合には、個数は 0 になります。

複数の値を持つフォーム要素のうちの 1 つの値を参照するには、値を index で指定する必要があります。パラメータ index には 1 から Request.Form(parameter).Count までの値を指定できます。index の値を指定せずに複数のフォーム パラメータの 1 つを参照した場合には、データはカンマで区切られた文字列として返されます。

Request.Form でパラメータを使うと、Web サーバーはその HTTP 要求本体を解析して、指定されたデータを返します。アプリケーションで未解析のフォーム データが必要な場合は、パラメータを指定せずに Request.Form を呼び出すことにより取得できます。

ループを使うとフォーム要求内のすべてのデータ値を解析できます。たとえば、ユーザーがパラメータ FavoriteFlavor に対して Chocolate および Butterscotch という 2 つの値を指定してフォームを完成させた場合、次のようなスクリプトを使ってこれらの値を取得できます。

<%
  For Each item In Request.Form("FavoriteFlavor")
    Response.Write item & "<BR>"
  Next
%>
 

上のスクリプトの表示結果は次のようになります。

Chocolate
Butterscotch
 

次のスクリプトのように For...Next のループを使っても、同じ出力を得ることができます。

<%
  For I = 1 To Request.Form("FavoriteFlavor").Count
    Response.Write Request.Form("FavoriteFlavor")(I) & "<BR>"
  Next
%>
 

このループを使い、次のスクリプトのようにパラメータ名を表示することができます。

<% For Each x In Request.Form %>
Request.Form( <%= x %> ) = <%= Request.Form(x) %> <BR>
<% Next %>
 

出力は次のようになります。

FavoriteFlavor = Chocolate
FavoriteFlavor = Butterscotch

次のようなフォームがあるとします。

<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>あなたの名前: <INPUT NAME = "firstname" SIZE = 48>
<P>いちばん好きなアイス クリームの味は何ですか ?: <SELECT NAME = "flavor">
<OPTION>Vanilla <OPTION>Strawberry <OPTION>Chocolate <OPTION>Rocky Road</SELECT>
<p><INPUT TYPE = SUBMIT>
</FORM>

このフォームから次の要求本体が送信されたとします。

firstname=James&flavor=Rocky+Road
 

次のスクリプトが使えます。

<%= Request.Form("firstname") %> さん、ようこそ。
あなたの好きな味は <%= Request.Form("flavor") %> ですね。
 

出力結果は次のようになります。

James さん、ようこそ。あなたの好きな味はロッキー ロードですね。
 

次のようなスクリプトを使ってみます。

未解析のフォーム データ:  <%= Request.Form %> 
 

すると、次のような出力が得られます。

未解析のフォーム データ:  firstname=James&flavor=Rocky+Road
 

対象

Request オブジェクト

関連項目

ClientCertificateCookies QueryString ServerVariables


(C) Microsoft Corporation. All rights reserved.