2010-06-17 79 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

相关问题