1

概括:

  • 插入有效。
  • 氟氯化碳工作

问题是当我将“ _#i# ”添加到字段名称的末尾时!

细节:

我有不同数量的表单字段需要同时插入到数据库中,不同的行。

所以我循环了表单并增加了字段的名称。

所以我有title_1、title_2、title_3等...

接下来我想通过按表单字段的数量循环插入来将它们插入数据库(一个提交按钮)。

我正在使用ColdFusion Server Standard 8,0,1,195765

错误: 无效的 CFML 构造

我已经尝试了各种 - 任何建议将不胜感激。

     <cfoutput>
        <cfloop from="1" to ="#VARIABLES.fieldTotal#" index="i">
        <cfset VARIABLES.insert = theObj.the_insert(
                the_id  = FORM.the_id_#i#
            ,   title   = FORM.title_#i#
            ,   author  = FORM.author_#i#
            ,   caption = FORM.caption_#i#
        )>
        </cfloop>
    </cfoutput>
4

2 回答 2

12
form[ "the_id_#i#" ]

所有 ColdFusion 范围都是结构,可以通过这种方式访问​​。

于 2013-01-14T20:31:35.853 回答
3

Sam Farmer 已经给出了正确的答案,但只是为了阐明访问结构成员的工作原理:

FORM.var等于FORM["var"]

但是,使用点的访问不会被评估。每当您想动态访问结构中的成员时,都需要使用方括号。

FORM["the_id_#i#"]等于FORM["the_id_" & i]

并记得清理用户输入(尤其是 GET/URL 和 POST/FORM 数据):

<cfloop from="1" to="#VARIABLES.fieldTotal#" index="i">
    <cfif structKeyExists(FORM, "the_id_" & i) and reFind("^[0-9]+$", FORM["the_id_" & i])
        and structKeyExists(FORM, "title_" & i)
        and structKeyExists(FORM, "author_" & i)
        and structKeyExists(FORM, "caption_" & i)>

        <cfset VARIABLES.insert = theObj.the_insert(
            the_id  = FORM["the_id_" & i],
            title   = FORM["title_" & i],
            author  = FORM["author_" & i],
            caption = FORM["caption_" & i]
        )>

    </cfif>
</cfloop>

structKeyExists(FORM, "the_id_" & i)等于isDefined("FORM.the_id_#i#")

于 2013-01-14T21:51:39.433 回答