1

概要:

  • インサートは機能します。
  • cfcは機能します

問題は、フィールド名の最後に「 _#i# 」を追加したときです。

詳細:

同時にデータベースに挿入する必要のあるフォームフィールドの数が可変で、異なる行があります。

そのため、フォームをループして、フィールドの名前を増やしました。

だから私はtitle_1、title_2、title_3などを持っています...

次に、フォームフィールドの量だけ挿入をループして、データベースに挿入します(1つの送信ボタン)。

私はColdFusionServerStandard8,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

正解はすでにSamFarmerによって提供されていますが、構造体メンバーへのアクセスがどのように機能するかを明確にするためです。

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 に答える