QueryString
QueryString コレクションは、HTTP クエリ文字列内の変数の値を取得します。HTTP クエリ文字列は、疑問符 (?) の後の値で指定されています。クエリ文字列を生成するプロセスにはさまざまなものがあります。たとえば、次のようなアンカ タグがあるとします。
<A HREF= "example?string=this is a sample">string sample</A>
この場合、"this is a sample" という値を持つ string という名前の変数が生成されます。クエリ文字列は、フォームを送信したり、ユーザーがブラウザのアドレス ボックスにクエリを入力した場合にも生成されます。
構文
Request.QueryString( variable )[( index )|.Count]
パラメータ
- variable
HTTP クエリ文字列内にある、取得する変数の名前を指定します。 - index
variable の複数の値のうちの 1 つを取得できるようにするための省略可能なパラメータです。1 ~ Request.QueryString( variable ).Count までの整数値を指定できます。
解説
QueryString コレクションは、ServerVariables コレクション内の変数 QUERY_STRING が解析されたものであり、QUERY_STRING の各変数を名前で参照することができます。Request.QueryString( parameter ) の値は、QUERY_STRING に出現するすべての parameter の値の配列になります。パラメータの値の数は、Request.QueryString( parameter ).Count を呼び出して調べることができます。変数に関連付けられているデータ セットが複数でない場合は、個数は 1 になります。変数が見つからない場合には、個数は 0 になります。
複数のデータ セットのうちの 1 つにある QueryString 変数を参照するには、index の値を指定します。パラメータ index には 1 ~ Request.QueryString( variable ).Count までの値を指定できます。index の値を指定せずに複数の QueryString 変数の 1 つを参照した場合、データはカンマで区切られた文字列として返されます。
Request.QueryString でパラメータを使用すると、サーバーはその要求に送られたパラメータを解析して、指定されたデータを返します。未解析の QueryString データがアプリケーションで必要な場合は、パラメータを指定せずに Request.QueryString を呼び出すことで取得できます。
ループを使用することで、クエリ文字列内のすべてのデータ値を解析できます。たとえば、次のような要求が送られたとします。
https://localhost/script/directory/NAMES.ASP?Q=Fred&Q=Sally
そして、Names.asp に次のスクリプトが記述されているとします。
---NAMES.ASP---
<%
For Each item In Request.QueryString("Q")
Response.Write (item) & "<BR>"
Next
%>
すると、Names.asp には次のように表示されます。
Fred
Sally
上のスクリプトは、次のように Count を使用して記述することも可能です。
<%
For i = 1 To Request.QueryString("Q").Count
Response.Write Request.QueryString("Q")(i) & "<BR>"
Next
%>
例
次のようなクライアント要求があるとします。
/scripts/directory-lookup.asp?name=fred&age=22
QUERY_STRING の値は次のようになります。
name=fred&age=22.
QueryString コレクションには、name
および age
の 2 つのメンバが格納されます。ここで次のようなスクリプトを使います。
Welcome, <%= Request.QueryString("name") %>.
Your age is <%= Request.QueryString("age") %>.
すると、次のような出力が得られます。
Welcome, Fred. Your age is 22.
次のようなスクリプトを使用したとします。
The unparsed query string is: <%=Request.QueryString %>
すると、次のような出力が得られます。
The unparsed query string is: name=fred&age=22