代码改变世界

【ColdFusion】利用Form传递动态变量技巧

2010-05-10 13:18  Peter Jin  阅读(852)  评论(0编辑  收藏  举报

在ColdFusion中,通常,使用Form接收客户的输入,然后在Action属性所指的文件中利用Form变量得到客户输入的数据并作处理。你也可以利用隐藏字段从一个网页向另一个网页传递参数。
例如,下面的
Form中包含一个名为Customer_ID的隐藏字段,被传递到文件example.cfm中。

<FORM ACTION="example.cfm" METHOD="Post">

<INPUT TYPE="Hidden"

NAME="Customer_ID" VALUE="24">

<INPUT TYPE="Submit" VALUE="Enter">

</FORM>

在文件example.cfm中,你可以用Form.Customer_ID的形式引用该变量。

也许大家会说这引用该变量的方法很正常啊,没有什么特别的。好,没错,的确是这样,因为Form表单中的INPUT数据域控件的ID号是固定的,是我们事先已经知道的。可是当Form表单中的INPUT数据域控件的ID号是动态的,那该怎样取值呢?

在做项目的过程中,我们常常会碰到这样的情况。常见的比如:添加文件附件,并且可以添加多件,这时,我们常常会采用JavaScript技术,添加多个上传文件的控件:
<input type="file" id="fileTemp1">
<input type="file" id="fileTemp2">
<input type="file" id="fileTemp3">
……

此时,当我们提交Form表单时,添加文件的个数就是动态的,这时你如何用Form.fileTemp1的形式引用变量呢?

其实要想取得Form表单提交过来的值,还有这样一种方法,即Form["Customer_ID"]。那现在要想取得动态的数据域中的数据,就很简单了:
<cfset index = 1>

<cfset filesrc = Form["fileTemp"&#index#]>

(注意:当生成控件时,控件ID号一定要有规律,要不然就没办法了。)

最近在做一个ColdFusion的项目,发现这方面的资料是在太少了,这个问题当初还折腾了一些时间,特记录下来,与大家一起分享。