2012-07-23 35 views
0

我无法传递一个参数:问题发送参数CFC

<cfset result = news.updateNews(form.id, form['title'&form.id])> 

我得到一个错误与去年的说法,称“元标题2在类型类coldfusion.filter的Java对象不确定。 FormScope。“

任何提示?除此之外,其他语法应该如何?

+1

cfdump'form ['title'&form.id]'看看它是什么?也许你应该首先使用默认值cfparam? – Henry 2012-07-23 17:14:36

+3

我会在你的CFSET之前做一个,首先确保你所期望的变量实际存在。刚刚离开你的错误信息,它看起来像你期望 Snipe656 2012-07-23 17:27:58

回答

5

提供的语法预计:

  1. 你有一个HTML表单,并
  2. 这形式所具有的领域它命名为“标题2”

如果你不这样做,就意味着你错误地将form.id(在本例中为'2')与表单字段名称'title'混合在一起,创建变量'title2',该变量预计存在于表单范围中(从表单提交中) 。

如果有一个名为表单中的“标题2”字段,您的代码将工作

<cfif isDefined('form.submit')> 
    <!--- here's your syntax ---> 
    <cfoutput>#form['title'&form.id]#</cfoutput> 
</cfif> 

<form action="form.cfm" method="post"> 
    <input type="hidden" name="id" value="2" /> 
    <input type="text" name="title2" value="" /> 
    <input type="submit" name="submit" /> 
</form> 

你以某种方式拿出,可能会阻止表单字段“标题2”从现有边缘状态:我个人的一种形式这种简单的脚本,发送到自身进行了测试。没有进一步的代码或解释,我们无法帮助超越这一点。

+0

谢谢!问题的结果是,title2依赖于另一个领域的定义,我明显忽视了这一点。虽然语法是好的,所以谢谢你们。 – aceslowman 2012-07-23 17:49:19

0

假设存在变数:

<cfset result = news.updateNews(form.id, evaluate('form.title#form.id#')) > 

是做到这一点的方法之一。

+0

我记得括号符号在某些动态评估中存在问题(例如在评估或isDefined函数中) – BKK 2012-07-23 17:27:35

0

您正在通过名为'title2'的'title'& stuct“form”,这是'title'& form.I'd的结果。如果你试图传入表单Id,只需使用form.Id,而不将它包装在表单结构标识符中。如果您只是想传入一个名为'title'的表单输入,只需传入form.title即可。如果你正在尝试传递form.id和form.title,请将它们传递给不同的参数。