双重评估 - 如何根据包含列名的变量访问我的查询列?

fro*_*die 2 coldfusion dynamic evaluate

我有一个查询和一个字段/列名称列表.我想做一个双循环 - 遍历查询中的每个记录,然后循环遍历字段/列名称列表并输出每个相应的字段.循环应该是这样的:

<table>
    <cfoutput query="myQuery">
        <tr>
            <cfloop list="#cols#" index="col">
                <td>?</td>
            </cfloop>
        </tr>
    </cfoutput>
</table>
Run Code Online (Sandbox Code Playgroud)

问题是在问号所在的位置...我已经尝试过#myquery[col]#,但这没有用.我需要获取变量中字符串名称所指示的变量col......显然,#col#只会返回列名.我需要找出一些方法来对字符串进行双重评估......就像##col##这样,当然也不会有用.我怎么能做到这一点?

Dan*_*ort 7

将列名引用为结构时,还需要告诉查询要获取哪一行.如果没有通过myQuery.ColumnList获取cols变量,还应确保检查列名是否存在.

使用以下代码动态引用循环中的每个列:

<table>
    <cfoutput query="myQuery">
        <tr>
            <cfloop list="#cols#" index="col">
                <td>#myQuery[col][CurrentRow]#</td>
            </cfloop>
        </tr>
    </cfoutput>
</table>
Run Code Online (Sandbox Code Playgroud)