« ColdFusionでフォームの作成 2/6 | トップページ | RSSリーダーって便利 »

2004/04/17

ColdFusionでフォームの作成 3/6

前編では、フォームに入力された内容を元のページへ送信するところまで解説しました。
今回は、送信されたフォームデータを、同じページ受取り、受取ったデータを表示するかを解説します。

入力フォームの表示と、フォームデータの受取するには、フォームデータを「受取った場合」の処理と、「受取っていない場合」を判断する必要があります。
この場合、フォーム変数があるかどうかを判断することになるので、<CFIF>タグと、変数があるかどうかを確認する関数IsDefined("variable_name")を使います。
それでは早速コードを書いてみます。

<CFIF IsDefined("FORM.myName")>
 <CFOUTPUT>#FORM.myName#</CFOUTPUT>
<CFELSE>
 <CFFORM action="#CGI.SCRIPT_NAME#" method="post">
  <CFINPUT name="myName" type="text" size="20" maxlength="30" required="yes" message="名前を入力してください">
  <INPUT type="submit" value="送信">
 </CFFORM>
</CFIF>

フォーム変数は、フォームのフィールド名の前にFORM.をつけることによって取得できます。
まずこのフォーム変数があるかどうかですが、前述のIsDefinedのvariable_nameにこのフォーム変数、FORM.myNameを記述することにより確認できます。
IsDefinedは変数が確認できれば、Trueを、できなければFalseの戻り値を返します。
はじめにこのページにアクセスした時にはFORM変数が無い為Faleseが返され、<CFELSE>以降のフォームが表示ます。
次にフォームを送信したときには、FORM変数が存在するのでTrueが返され、<CFOUTPUT>#FORM.myName#</CFOUTPUT>が処理され、フォームに入力した文字が表示されます。
※CFIFタグは関数の戻り値を評価する場合には、明示的に評価式を記述しなくても評価してくれます。

すごく簡単ですね、ですが、これには実は落とし穴があります。
入力欄にスペースを入れた場合でも、前編で紹介したCFINPUTタグのrequiredの評価でエラーにならす、今回紹介したIsDefinedも変数が「有るか」「無いか」の評価しかしてないので、ページには何も表示されなくなってしまいます。

【予告】
次回は意図しない入力をした場合、どうやってエラーを評価するかを解説します。

◇この記事が参考になりましたらこちらをクリック ≫ 人気blogランキング

◇「『うぇっぶ』のはなし」へのコメント募集中 ≫ ビジネスブログランキング100選

|
|

« ColdFusionでフォームの作成 2/6 | トップページ | RSSリーダーって便利 »

ColdFusion」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/26804/454935

この記事へのトラックバック一覧です: ColdFusionでフォームの作成 3/6:

« ColdFusionでフォームの作成 2/6 | トップページ | RSSリーダーって便利 »