0

我在传递参数时遇到问题:

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

我收到最后一个参数的错误,说“元素 title2 在类型为coldfusion.filter.FormScope 的Java 对象中未定义。”。

有小费吗?否则语法应该是什么?

4

3 回答 3

5

提供的语法期望:

  1. 您有一个 HTML 表单,并且
  2. 该表单中有一个名为“title2”的字段

如果不这样做,则意味着您错误地将 form.id(在此示例中为“2”)与表单字段名称“title”混合,创建了变量“title2”,该变量预计将存在于表单中范围(来自您的表单提交)。

如果您的表单中确实有一个名为“title2”的字段,那么您的代码将起作用。我用这个简单的表单脚本亲自测试了它:

<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>

您以某种方式想出了一个边缘条件,可能会阻止表单字段 'title2'存在。如果没有进一步的代码或解释,我们真的无能为力。

于 2012-07-23T17:26:36.267 回答
0

假设变量存在:

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

是一种方法。

于 2012-07-23T17:26:29.493 回答
0

您正在传入名为“title2”的成员,它是“title”和“form”的结果,它是“title”和 form.I'd 的结果。如果您尝试传入表单 ID,只需使用 form.Id 而不将其包装在表单结构指示符中。如果你试图传入一个名为'title'的表单输入,只需传入form.title。如果您尝试同时传递 form.id 和 form.title,请将它们传递到单独的参数中。

于 2012-07-23T17:34:03.500 回答