Coldfusion:多个表单字段,一个提交

时间:2013-01-14 20:19:06

标签: coldfusion insert

要点:

  • 插页有效。
  • cfc的作品

问题是当我在字段名称的末尾添加“ _#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>

2 个答案:

答案 0 :(得分:12)

form[ "the_id_#i#" ]

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

答案 1 :(得分:3)

Sam Farmer已经给出了正确的答案,但只是为了澄清访问struct成员的工作原理:

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#")