0

CFLOOP から値を取り出してダンプしようとしていますが、何かが足りないようです。最初のループから openHours を抽出し、2 番目のループから openMinutes を抽出し、値を送信するためのクエリを実行する変数に入れる必要があります。データベースで。

#form# をダンプしたときの構造体です。変数を取得する必要がありますform.openHours1。問題は、openHours が #CountVar# によってその番号を取得することです。そのため、基本的に #form.openHours[CountVar]# のようなものをダンプする必要があります。

struct  
FIELDNAMES   POSTITNOW,OPENHOURS1,OPENHOURS2,OPENHOURS3,OPENHOURS4,OPENHOURS5,OPENHOURS6,OPENHOURS7
OPENHOURS1   13
OPENHOURS2   13
OPENHOURS3   12
OPENHOURS4   0
OPENHOURS5   0
OPENHOURS6   0
OPENHOURS7   0
POSTITNOW    YES 
4

3 に答える 3

1

#form.openHours[CountVar]#あなたが望むものではなく:

form["openHours" & CountVar]

スコープとして、FORM も構造体であり、配列表記を使用して値を取得できます。

これは、動的なフォーム フィールド名を操作するための鍵です。

明確にするために:

form.openHours7

と同等です

form["openHours7"]

1 つ目は一般にドット表記法として知られ、2 つ目は配列表記法として知られています (配列要素の参照方法に似ているためです。

括弧内の値は文字列なので、変数に置き換えることができます。

<cfset fieldToUse = "openHours7">
<cfoutput>#form[fieldToUse]#</cfoutput>

または、最初に説明したように、リテラル文字列と変数の組み合わせです。

ドット表記では実際にそれを行うことはできません。(少なくとも、通常は推奨されない evaluate() を使用せずにはいられません。)

ドキュメントには、さまざまな表記方法など、構造体の操作方法に関する多くの情報が含まれています。

于 2012-04-13T17:41:42.873 に答える
0

申し訳ありませんが、これは私には少しあいまいですが、それでも私が飛び込むのを止めたことはありません. openhours と openminutes の数は同じになりますか? form.fieldnames をループできますか? 現在のところ、openhours1-N という名前のフィールドがありますが、openminutes1-N はまだ追加されていないようです。フィールド名をループできるようです。フィールドがopenhoursで始まる場合、末尾から数字を取得し、対応するopenminutesフィールドを簡単に作成できます。Al が (ずっと) 前に言ったように、おそらく配列表記を使用してフォーム構造から値を取得します。

別の考えとして、フォーム フィールド名は一意である必要はありません。「openhours」が複数回出現する場合、ColdFusion はそれをリストに変換し、そのリストをループすることができます。

于 2012-04-25T02:45:17.720 に答える
0

私はあなたがこれ、または非常に似たものが欲しいと思います:

<cfoutput>
<cfloop from="1" to="7" index="CountVar">        
     #openHours[CountVar]#<br>
</cfloop>
</cfoutput>
于 2012-04-13T16:11:50.443 に答える