如何在Coldfusion中动态构造查询输出变量?

时间:2013-02-22 15:50:46

标签: variables dynamic coldfusion output

我正在尝试遍历一个包含我需要显示的列名的数组。用户可以定义自己的列,因此这将是动态列名列表

例如,列名可能是:

["style", "color", "size"]

这些是我需要从名为results的查询中输出的列名。

我这样做:

<cfset variables.styleText = "">
<cfloop array="#DeserializeJSON(variables.raw.field_names)#" index="x">
   <cfset variables.styleText = variables.styleText & "#results." & x &"# ">
</cfloop>
<cfoutout>variables.styleText</cfoutput>

但是这给了我一个错误,因为我不能用quot aka

结束变量名
 Diagnose: A CFML variable name cannot end with a &quot;.&quot; character. 
 The variable results. ends with a &quot;.&quot; character.  
 You must supply an additional structure key or delete the &quot;.&quot; character.

问题:
任何人都可以给我一个提示,我需要如何修改它以输出我的results查询中的值,在这种情况下 #results.style# #results.color# #results.size#

谢谢!

1 个答案:

答案 0 :(得分:6)

而不是

<cfloop array="#DeserializeJSON(variables.raw.field_names)#" index="x">
 <cfset variables.styleText = variables.styleText & "#results." & x &"# ">
</cfloop>

你应该能够做到

<cfloop array="#DeserializeJSON(variables.raw.field_names)#" index="x">
 <cfset variables.styleText = variables.styleText & results[x][results.currentrow]>
</cfloop>

或者,如果您只是使用CF9或更高版本

<cfset variables.styleText&=results[x][results.currentrow]>