我正在创建一个表单,用户将在其中输入数据,然后单击“查看”以查看他们输入的数据。然后在审查后,“保存”记录。
我正在使用 a<cfform>
提交表单,但想知道如何从“评论”页面将数据提交到数据库,因为这里没有表单。
我是否应该设置FORM.Name = VARIABLES.Name
要在评论页面上显示的变量,然后在提交“保存”后将它们转换回来?
不太确定在这里做什么。想太多?
我正在创建一个表单,用户将在其中输入数据,然后单击“查看”以查看他们输入的数据。然后在审查后,“保存”记录。
我正在使用 a<cfform>
提交表单,但想知道如何从“评论”页面将数据提交到数据库,因为这里没有表单。
我是否应该设置FORM.Name = VARIABLES.Name
要在评论页面上显示的变量,然后在提交“保存”后将它们转换回来?
不太确定在这里做什么。想太多?
保持在表单范围内。表单值的基本输出,使用在 form.fieldList 中烘焙:
<cfloop list="#form.fieldList#" item="fieldName">
<cfoutput>
#fieldName#: #form[fieldName]#<br>
<input type="hidden" name="#fieldName#" value="#form[fieldName]#">
</cfoutput>
</cfloop>
链接到原始表单或提交到您保存它的页面,使用隐藏字段中的值(应反映原始表单值)
您可以通过其他一些方法来做到这一点,但这对我来说似乎最简单。
为什么不在评论页面使用带有隐藏输入字段的第二个表单?确认将是向将数据保存到服务器的页面的提交按钮。第二种可能性(不太合适):将数据直接保存到数据库中并从那里加载以供审查。技巧:使用带有“已确认”的标志并在确认时设置它。不好的部分是:您必须清理尚未确认的旧数据。
改进比利克雷文斯的答案。这可以防止具有嵌入式攻击的字段
<cfoutput>
#lcase(fieldName)#: #xmlFormat(form[fieldName])#<br>
<input type="hidden" name="#fieldName#" value="#xmlFormat(form[fieldName])#" />
</cfoutput>
这也不适用于图像上传。lcase(fieldName) 是为了防止字段显示为全部大写。小写通常更容易阅读。