1

基本上,我已将信息存储在数据库字段中,我想通过表单再次显示它。

原始表单具有相同的复选框,但它们始终为空。用户可以选中复选框并将值放入数据库中。

研究生课程:秋季?春天?夏天?以列表形式存储在名为 grad 的列中。(女、男、女)

他们可以选择将这个可爱的表格保存为草稿。当他们回到草稿时,我需要展示他们可能已经检查过的内容。

  <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 代码执行此操作?

只是好奇。:)

4

1 回答 1

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 文档指出:

[自] ColdFusion MX:更改了cfform标签 preserveData属性行为:如果设置为True,则ColdFusion 仅在其值与控件的发布值匹配时才检查单选和复选框值。

所以是的,<cfform>可以帮助你。用于<cfparam name="FORM.xyz" default="foobar">模拟正常请求的“发布值”。

于 2010-11-05T15:36:44.327 回答