1

私は Coldfusion にあまり詳しくありませんが、いくつかのコードを読んでいて、これを見ました。

 <CFLOOP INDEX="element" LIST="#FIELDNAMES#">
    <CFSET REP_LIMIT = 0>
    <CFSET E_VALUE = EVALUATE(#ELEMENT#)>

2 つの質問があります。1) E_VALUE を現在のインデックスに設定していますか? もしそうなら、EVALUATE とは何ですか? および 2) これは EVALUATE の不適切な使用または危険な使用ですか?

4

1 に答える 1

2

Evaluate は主に、フォーム変数などの動的に名前が付けられた変数を評価するために使用されます。フォームから送信される可能性のあるフォーム変数がわからない場合は、FORM.fieldnames にアクセスしてフィールド名を単純にループできます。

(http://cfprimer.blogspot.com/2005/03/void-evaluate.html)。14 年間 CF をコーディングしてきましたが、CF が使用されているのはほんの数回しか見たことがありません。私の意見では、どのフォーム要素が送信されるかを前もってわからないように設定するのは悪い習慣です。

あなたの例では、インデックスは「要素」に設定されています。したがって、ループしている間、「フィールド名」のリストにあるものはすべて要素になります。

これらのフィールド名を出力したい場合は、次のようにします。

<cfset fieldnames = "firstname,lastname,email">
<cfoutput>
<cfloop index="element" list="#fieldnames#">
     #element#<br>
</cfloop>
</cfoutput>

これは次のように出力されます。

firstname
lastname
email
于 2012-04-07T21:13:00.130 に答える