基本上,我已将信息存储在数据库字段中,我想通过表单再次显示它。
原始表单具有相同的复选框,但它们始终为空。用户可以关闭这些框,并将值放入数据库。
研究生课程:秋天?弹簧?夏季?存储为名为grad的列中的列表。 (F,M,S)
他们可以选择将这个可爱的表格保存为草稿。当他们回到选秀时,我需要展示他们可能已经检查过的内容。
<cfif listContains(#grad#, "F") is not 0>
<input type="checkbox" name="grad" id="grad" value = "F" checked />
<cfelse>
<input type="checkbox" name="grad" id="grad" value = "F" />
</cfif>
<cfif listContains(#grad#, "S") is not 0>
<input name="grad" type="checkbox" id="grad" value = "S" checked />
<cfelse>
<input name="grad" type="checkbox" id="grad" value = "S" />
</cfif>
<cfif listContains(#grad#, "M") is not 0>
<input name="grad" type="checkbox" id="grad" value = "M" checked />
<cfelse>
<input name="grad" type="checkbox" id="grad" value = "M" />
</cfif>
使用cfform代码执行此操作是否有更简单的方法?
好奇。 :)
答案 0 :(得分:3)
我是这样做的,因为我没有真正使用<cfform>
:
<cfloop list="F,S,M" index="g">
<input type="checkbox" name="grad" id="grad_#g#" value="#g#" #CheckedIf(ListFind(grad, g) gt 0)# />
</cfloop>
<!--- ... --->
<cfscript>
function CheckedIf(expression) {
if (arguments.expression) return 'checked="checked"';
return "";
}
</cfscript>
但ColdFusion文档指出:
[since] ColdFusion MX:更改了
cfform
标记preserveData
属性行为:如果是 设置为True
, ColdFusion检查 收音机和复选框值仅限于 它们的值与发布的值匹配 控制。
是的,<cfform>
可以帮助您解决这个问题。使用<cfparam name="FORM.xyz" default="foobar">
模拟正常请求的“发布值”。