2010-06-17 148 views
1

我遇到問題,當我嘗試在我的ColdFusion代碼中嵌套磅符號時。我不斷收到以下錯誤信息:嵌套的英鎊符號問題

在列26 的ColdFusion上線57發現無效CFML構建看着下面的文字:

下面是代碼:

<cfloop index="i" from="1" to="12"> 
    <cfset needRecord.setNeed#i#(#form["need#i#"]#) /> 
</cfloop> 

如果我像這樣運行CFSET標籤外循環:

<cfloop index="i" from="1" to="12"> 
    needRecord.setNeed#i#(#form["need#i#"]#) 
</cfloop> 

該代碼運行並生成我想在cfset標記中生成的內容。任何想法我做錯了什麼?

任何幫助將不勝感激。

回答

6

是否需要記錄CFC?以下是一種方法:

<cfinvoke component="#needRecord#" method="setNeed#i#" x="#form['need#i#']#"> 

其中「x」是setNeed的參數名稱。你也可以簡化。喜歡的東西:

<cfset value = form["need#o#"]> 
<cfset evaluate("needRecord.setNeed#i#(value)")> 
+0

錯誤在最後一個代碼塊的最後一行,移動最後一個#的內部)。 – 2010-06-17 19:36:37

+5

你可以編輯你的答案:) – 2010-06-17 19:40:37

+0

needRecord是一個記錄對象。我正在使用反應堆。 – 2010-06-17 19:50:00

-1

我相信你可以重新寫爲:

<cfset needRecord.setNeed#i#(form["need#i#"]) /> 

各地形式英鎊符號[]不應該是必要的,應該清理的嵌套英鎊符號問題

+0

丹尼爾....仍然得到相同的錯誤消息,但你是正確的圍繞形式英鎊標誌! – 2010-06-17 19:54:09

+0

必須使用cfinvoke或評估 – Henry 2010-06-17 20:43:16

0

除非在字符串中(例如「need#i#」),否則不能在cfset中標記磅。請注意,對於動態CFML,您可以使用ColdFusion的evaluate()函數。

<cfset cfml = "needRecord.setNeed#i#(form[need#i#])" /> 
<cfset evaluate(cfml) /> 
+0

不完全正確。 很好。 – Henry 2010-06-17 20:47:06

相關問題