ken*_*r99 1 forms coldfusion coldfusion-10
我有一个带有需要处理的复选框的表单我想循环遍历每个选定的选项但我似乎无法使ColdFusion将HTML复选框字段识别为列表
因此,如果有人选择了选项1和2,我应该能够遍历逗号分隔的提交值列表.但是,尽管使用逗号分隔符,它仍然将整个字符串选为单个条目
例:
<form action="" method="get">
<input name="test" type="checkbox" value="1" checked="checked" />Option1<br>
<input name="test" type="checkbox" value="2" checked="checked" />Option2<br>
<input name="test" type="checkbox" value="3" checked="checked" />Option3<br>
<input name="test" type="checkbox" value="4" checked="checked" />Option4<br>
<input name="" type="submit" />
</form>
<cfif IsDefined("test")>
<cfoutput> lenght: #len(test)#<br>
#test#
</cfoutput><br />
<cfloop index="i" list = "#test#" delimiters="," >
<cfoutput>#i# ---#test#<br /></cfoutput>
</cfloop>
</cfif>
Run Code Online (Sandbox Code Playgroud)
收益:
lenght: 7
1,2,3,4
1 ---1,2,3,4
2 ---1,2,3,4
3 ---1,2,3,4
4 ---1,2,3,4
Run Code Online (Sandbox Code Playgroud)
(我正在使用ColdFusion 10 dev版)
你误读了你的代码.它的工作原理是:
当您引用时form.test,它将是您在复选框中选择的所有值的列表.EG:如果你已经全部检查过,那么价值就是1,2,3,4
您正在使用以下代码向自己演示:
<cfoutput>#i# ---#test#<br /></cfoutput>
Run Code Online (Sandbox Code Playgroud)
你看到了---1,2,3,4.IE:form.test包含1,2,3,4
当一个循环遍历这样的列表:
<cfloop index="i" list = "#test#" delimiters="," >
Run Code Online (Sandbox Code Playgroud)
然后依次获取列表的i每个元素值.你也看到了这一点.
form.test确实是7:长度"1,2,3,4"是七个字符.listLen()会给你的4.
最后,一些编码建议:
form.test不testisDefined(),使用structKeyExists()i在这种情况下是一个糟糕的变量名称(可能会让你感到困惑),checkBoxValue可能会更好.或者指示复选框代表什么的东西.| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |