0

ユーザーがデータを入力するフォームを作成し、[確認]をクリックして入力したデータを確認します。次に、確認後、レコードを「保存」します。

を使用し<cfform>てフォームを送信していますが、ここにフォームがないため、[レビュー]ページからデータベースにデータを送信する方法を知りたいです。

レビューページに表示するような変数を設定FORM.Name = VARIABLES.Nameし、「保存」を送信した後でそれらを元に戻す必要がありますか?

ここで何をすべきかよくわかりません。熟考の上?

4

3 に答える 3

3

フォームの範囲内にとどめてください。form.fieldListでベイク処理を使用したフォーム値の基本出力:

<cfloop list="#form.fieldList#" item="fieldName">

    <cfoutput>
        #fieldName#: #form[fieldName]#<br>
        <input type="hidden" name="#fieldName#" value="#form[fieldName]#">
    </cfoutput>

</cfloop>

非表示フィールドの値(元のフォームの値を反映している必要があります)を使用して、元のフォームにリンクするか、保存するページに送信します

これを行うことができる他のいくつかの方法ですが、これは私には最も簡単に思えます。

于 2012-09-19T06:00:23.453 に答える
2

レビューページに非表示の入力フィールドを持つ2番目のフォームを使用してみませんか?確認は、データをサーバーに保存するページへの送信ボタンになります。2番目の可能性(適切ではありません):データをデータベースに直接保存し、そこからレビューのためにロードします。トリック:「確認済み」のフラグを使用し、確認済みの場合は設定します。それについての悪い部分:あなたは確認されていない古いデータをクリーンアップする必要があります。

于 2012-09-18T23:18:12.383 に答える
1

ビリー・クレイヴンズの答えを改善する。これにより、攻撃が埋め込まれたフィールドから保護されます

<cfoutput>
    #lcase(fieldName)#: #xmlFormat(form[fieldName])#<br>
    <input type="hidden" name="#fieldName#" value="#xmlFormat(form[fieldName])#" />
</cfoutput>

また、これは画像のアップロードでは機能しません。lcase(fieldName)は、フィールドがすべて大文字で表示されないようにするためのものです。多くの場合、小文字の方が読みやすくなります。

于 2012-11-28T22:53:30.560 に答える