2013-02-22 3 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

Ok. Стараясь. Благодарю. Использование 'CF8', хотя, поэтому я собираюсь с вашими первыми предложениями – frequent

+0

Прохладный. Работает. Большое спасибо! – frequent