2

クエリとフィールド/列名のリストがあります。一種の二重ループを実行したい - クエリ内の各レコードをループしてから、フィールド/列名のリストをループして、対応する各フィールドを出力します。ループは次のようになります。

<table>
    <cfoutput query="myQuery">
        <tr>
            <cfloop list="#cols#" index="col">
                <td>?</td>
            </cfloop>
        </tr>
    </cfoutput>
</table>

問題は、疑問符の場所に何を置くかです... を試しまし#myquery[col]#たが、うまくいきませんでした。変数の文字列名で示される変数を取得する必要がありますcol...そして明らかに#col#、列名を返すだけです。文字列を二重評価する方法を見つける必要があります... のようなものです##col##が、もちろんこれも機能しません。どうすればこれを達成できますか?

4

3 に答える 3

7

列名を構造体として参照する場合は、取得する行もクエリに指示する必要があります。myQuery.ColumnListを介してcols変数を取得しなかった場合は、列名が存在することも確認する必要があります。

次のコードを使用して、ループ内の各列を動的に参照します。

<table>
    <cfoutput query="myQuery">
        <tr>
            <cfloop list="#cols#" index="col">
                <td>#myQuery[col][CurrentRow]#</td>
            </cfloop>
        </tr>
    </cfoutput>
</table>
于 2011-01-26T12:13:55.027 に答える
-1

独自の列リストで Sergii のアプローチを引き続き使用できます。

<cfloop list="#cols#" index="col">
   <cfif StructKeyExists(myQuery, col)>
      <td>#col# = #myQuery[col][myQuery.CurrentRow]#</td>
   </cfif>
</cfloop>
于 2011-01-26T11:09:35.503 に答える
-2

とった!!:)

#evaluate(evaluate("col"))#
于 2011-01-26T10:52:08.270 に答える