2012-09-18 50 views
0

我正在創建一個用戶輸入數據的表單,然後單擊「查看」查看他們輸入的數據。然後在審查後,「保存」記錄。表單輸入,查看然後更新

我正在使用<cfform>來提交表單,但想知道如何將數據從「Review」頁面提交到數據庫,因爲這裏沒有任何表單。

我應該設置像FORM.Name = VARIABLES.Name變量顯示查看頁面上,然後將其轉換回他們提交的「保存」後?

不太確定該做什麼。想太多?

+3

我會說你在想這件事。將表單傳遞到審閱頁面,然後將這些表單變量作爲隱藏變量傳遞到保存頁面。 –

+1

如果您不想重新發明輪子,您可以使用10年前的自定義標籤自動爲您設置:[CF_EmbedFields](https://www.adobe.com/cfusion/exchange/index。 CFM?事件= extensionDetail&EXTID = 1000001)。 – ale

回答

3

只要保持表格範圍。表單值的基本輸出,它使用烤form.fieldList:

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

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

</cfloop> 

鏈接到原始形式或提交頁面,你保存它,利用隱藏字段的值(這應該反映原始形式值)

其他一些方法可以做到這一點,但這對我來說似乎最簡單。

+0

感謝您的幫助! – lmtony

+0

我每天都進出項目,我一直無法回覆這個問題。如上所述,我可能會過度思考。我會嘗試上面的fieldList解決方案,這是我不知道的東西。我感謝幫助! – lmtony

2

爲什麼不使用與在瀏覽頁面隱藏輸入字段第二種形式?確認將是將數據保存到服務器的頁面的提交按鈕。 第二種可能性(不恰當):將數據直接保存到數據庫中並從那裏加載以供審閱。招數:使用「已確認」的標誌,並在確認後進行設置。糟糕的是:你必須清理尚未確認的舊數據。

+0

第二個選項有有效的用例。但同意在這種情況下可能沒有必要。具有隱藏字段的第二種形式應該就足夠了。 – Leigh

1

提高對比利Cravens答案。這可以防止具有嵌入攻擊

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

而且這不會對圖片上傳的工作領域。 lcase(fieldName)將保持字段不被顯示爲全部大寫。小寫字母通常更易於閱讀。