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」カテゴリの記事
- 久々のプログラミングは「つらい」(2004.04.08)
- ColdFusionってなにさ? 1/2(2004.04.10)
- ColdFusionってなにさ? 2/2(2004.04.11)
- ColdFusionでフォームの作成 1/6(2004.04.13)
- ColdFusionでフォームの作成 2/6(2004.04.14)



コメント