2009-05-26 20:08:07

【cfparam】変数が存在しない場合はデフォルト値をセット

テーマ:ColdFusionのタグ
 以下のようなプログラムがあります。

【test1.cfm】
01: <cfoutput>
02: チェックした数値の合計
03: <form action="test2.cfm" method="post">
04: <cfloop index="idx" from="1" to="10">
05:     <input type="checkbox" name="chk" value="#idx#">#idx#<br>
06: </cfloop>
07: <input type="submit" value="send">
08: </form>
09: </cfoutput>

【test2.cfm】
01: <cfset gokei = 0>
02: <cfloop index="idx" list="#form.chk#">
03:     <cfset gokei = gokei + idx>
04: </cfloop>
05: <cfoutput>
06: 合計は、#gokei#です。
07: </cfoutput>


test1.cfmで1と3をチェックした場合、form.chkの値は

1,3

となります。
全然チェックしないでsendボタンを押した場合、form.chkの値はないですが、
問題は、form.chkの変数すら生成されていません。
変数がないので、エラーとなってしまいます。
変数がなかったら変数を生成するようにしないといけません。

変数の存在をチェックし、ない場合にヌルをセットする場合は、

01: <cfif not isDefined("form.chk")>
02:     <cfset form.chk = "">
03: </cfif>

または、

01: <cfif not StructKeyExists(form, "chk")>
02:     <cfset form.chk = "">
03: </cfif>

1行で書く場合は、

01: <cfparam name="form.chk" default="">

個人的にもcfparamはよく使っています。


cfparamのドキュメントはこちらです(cf7)。
AD
いいね!した人  |  コメント(0)  |  リブログ(0)

うたらぼさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。