[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









%Requestオブジェクトの使い方

Makin' CSP Page.

WEBアプリケーションを開発する上で必要になる、ブラウザから送信されるデータの受け取り処理を行うのが%requestオブジェクトです。

次のような2つのページがあるとします。

aaa.cspbbb.csp

<HTML>
<BODY>
 <FORM METHOD=POST ACTION="bbb.csp">
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=SUBMIT VALUE="送信">
 </FORM>
</BODY>
</HTML>

  <HTML>
<BODY>

あなたの入力した値は
#(%request.Data("VAL",1))#
です

</BODY>
</HTML> あなたの入力した値は
あなたの入力した値は

aaa.csp で入力した値が、bbb.csp で表示されます。
このように、あるページで入力したデータを別のページに渡すことが、Webページでは良く行われます。
このような情報を受け取るとき、CSPでは次の構文を利用します。

%request.Data("パラメータ名",個数)

この文でパラメータとして渡された値を取得しています。
個数、というのは同じパラメータ名の値が複数渡されたときに、どのデータを取得するかを指定するものです。

aaa.cspbbb.csp

<HTML>
<BODY>
 <FORM METHOD=POST ACTION="bbb.csp">
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=SUBMIT VALUE="送信">
 </FORM>
</BODY>
</HTML>

 

<HTML>
<BODY>

#(%request.Data("VAL",1))#
#(%request.Data("VAL",2))#

</BODY>
</HTML>

このように、1つめと2つめの値がそれぞれ取得できます。
複数のパラメータが取得可能というのが上の例ですが、いったいいくつそのパラメータに値があるのかを取得するのが、

%request.Count("パラメータ名")

です。

次の例では、<csp:loop>を使って複数のパラメータを表示しています。

aaa.cspbbb.csp

<HTML>
<BODY>
 <FORM METHOD=POST ACTION="bbb.csp">
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=TEXT NAME=VAL>
  <INPUT TYPE=SUBMIT VALUE="送信">
 </FORM>
</BODY>
</HTML>

 

<HTML>
<BODY>

<csp:loop counter=i from=1 step=1 to=#(%request.Count("VAL"))#>
#(%request.Data("VAL",i))#
</csp:loop>
</BODY>
</HTML>

 

ここまでの例では、<FORM>を利用したデータ渡しでしたが、%RequestではURLに含まれるデータも同様に処理できます。 URLにデータを含めるには、対象ページアドレスの後に ? (クエスチョンマーク)を置き、続けて 変数名=値 の形式で記述します。複数の値を渡す場合は、& ()で区切ります。

aaa.cspbbb.csp

<HTML>
<BODY>
 <A HREF="bbb.csp?VAL=123&mode=C">
  ここをクリックしてください
 </A>
</BODY>
</HTML>

 

<HTML>
<BODY>

#(%request.Data("VAL",1))#  <br>
#(%request.Data("mode",1))#

</BODY>
</HTML>

この時aaa.cspのリンクをクリックしてbbb.cspを開くと、123とCが表示されます。

 

そのほかにも

%request.Get("パラメータ名","デフォルト値",個数) データを取得します。%request.Dataと$Get()を組み合わせたような感じです。データ取得にはこっちを使ったほうがいいかも
%request.GetCgienv("パラメータ名","デフォルト値") CGI環境変数を取得します。パラメーターには、HTTP_ACCEPT , HTTP_ACCEPT_ENCODING , HTTP_ACCEPT_LANGUAGE , HTTP_CONNECTION , HTTP_HOST , HTTP_REFERER , REMOTE_ADDR , REMOTE_HOST , SERVER_NAME , SERVER_PORT , SERVER_PROTOCOL , SERVER_SOFTWARE などが来ます。詳細はこちらを参照してください。
   

等があります。

 



[an error occurred while processing this directive] [an error occurred while processing this directive]
2012/11/19Update