2013-02-22 44 views
1

我想循環一個數組,其中包含我需要顯示的列名。用戶可以定義自己的列,所以這將是一個動態的列名列表如何在Coldfusion中動態構造查詢輸出變量?

例如,列名稱可能是:

["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又名

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#

謝謝!

回答

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]> 
+0

好吧。試。謝謝。雖然使用'CF8',所以我會用你的第一個建議 – frequent 2013-02-22 16:07:36

+0

酷。作品。非常感謝你! – frequent 2013-02-22 16:09:40