在我的表单中,我有一个带方括号的元素:
<input name="bodyIDList[]" id="bodyIDList" value="">
当我将此页面传递给ColdFusion时,如何将其视为表单变量?作为列表还是数组?
答案 0 :(得分:5)
不确定为什么要提出这个问题 - 创建测试需要几秒钟才能找到答案!
测试它的代码很简单:
<cfoutput>
<form action="#CGI.SCRIPT_NAME#" method="post">
<input name="bodyIDList[]" id="bodyIDList" value="">
<button type="submit">go</button>
</form>
</cfoutput>
<cfdump var=#Form# />
运行它,按go,查看转储。
但是,既然我们现在已经有了这个问题,我不妨给出一个完整的答案,因为实际上有一件有趣的事情需要注意......
如果您在Adobe ColdFusion 9(或任何其他版本的CF)上运行该代码,您将获得一个名为bodyIDList[]
的字符串变量 - 即Form['bodyIDList[]']
- 只有一个值。
如果你有多个这些字段,你仍然会得到一个带有逗号分隔列表的字符串。
由于变量名中包含括号,因此无法使用点符号访问此字段。
以上所有内容也适用于最新的Open BlueDragon。
但是,如果你使用Railo,你会得到一个不同的行为(从PHP复制),它会给你一个名为bodyIDList
的变量 - 即没有括号的Form ['bodyIDList'] - 其中包含数组
如果您有多个这些字段,您将获得一个包含多个元素的数组。
目前没有管理员配置选项可以让Railo与ACF兼容,因此:
如果您正在编写跨引擎CFML代码,请不要使用带括号的表单字段名称。
(好吧,除非你知道并愿意处理这些差异)。
答案 1 :(得分:1)
该元素将单独列出,例如as bodyIDList []。我只是在我的一个CF9盒子上检查了这个。
现在,如果您有多个同名字段,它将在表单范围内显示为列表。