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 回答