带方括号的表格输入元素

时间:2011-09-07 18:43:40

标签: coldfusion coldfusion-9

在我的表单中,我有一个带方括号的元素:

<input name="bodyIDList[]" id="bodyIDList" value="">

当我将此页面传递给ColdFusion时,如何将其视为表单变量?作为列表还是数组?

2 个答案:

答案 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盒子上检查了这个。

现在,如果您有多个同名字段,它将在表单范围内显示为列表。