有没有更简单的方法来操作 Coldfusion 中的复选框?

发布于 2024-09-30 18:41:38 字数 958 浏览 7 评论 0原文

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

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

研究生课程:秋季?春天?夏天?以列表形式存储在名为 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 代码执行此操作?

只是好奇。 :)

Basically, I have stored information in a database field and I want to display it again through a form.

The original form has the same checkboxes but they are always empty. The user can check the boxes off and the values are put into the database.

Graduate Courses: Fall? Spring? Summer? Stored as a list in a column named grad. (F, M, S)

They have the option to save this lovely form as a draft. When they come back to the draft I need to display what they might have already checked.

  <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>

Is there an easier method to doing this with cfform code?

Just curious. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぽ尐不点ル 2024-10-07 18:41:38

我这样做是因为我并没有真正使用

<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 属性行为:如果它
设置为 TrueColdFusion 检查
仅当以下情况时,单选框和复选框值
他们的价值与发布的价值相符
用于控制。

所以,是的, 可以帮助您解决此问题。使用 模拟正常请求的“发布值”。

I do it like this, as I don't really use <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>

But the ColdFusion docs state:

[since] ColdFusion MX: Changed the cfform tag
preserveData attribute behavior: if it
is set to True, ColdFusion checks
radio and check box values only if
their value matches the posted value
for the control.

So yes, <cfform> can help you with this. Use <cfparam name="FORM.xyz" default="foobar"> to emulate the "posted value" for normal requests.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文