繁体   English   中英

从收集循环获取表单字段值

[英]get form field value from collection loop

我正在遍历一个集合(表单),并测试表单字段名称中的“ attachedFile”。 成功后,我想将表单字段值添加到数组。 目前,我只获得表单字段名称,而不是值。

<cfloop collection="#FORM#" item="field">
    <cfif FindNoCase('attachedFile',field) IS 1>
        <cfset fileNamesArray[fileNamesIndex] = field>
        <cfset fileNamesIndex = fileNamesIndex + 1>
    </cfif>
</cfloop>

我尝试将索引[whatever]处的数组设置为#form.field#,但这会导致错误(未定义)。 任何想法如何在这个循环中获得我的价值? 谢谢。

<cfloop collection="#Form#" item="field">
    <cfset currentFieldName  = field>
    <cfset currentFieldValue = Form[field]>
</cfloop>

http://help.adobe.com/zh_CN/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172172e0811cbec22c24-7fe2.html

或者,如果您更喜欢脚本样式,并且使用的是CF9,请使用for-in循环

<cfscript>
    for (field in Form)
    {
        currentFieldName  = field;
        currentFieldValue = Form[field];
    }
</cfscript>

在Coldfusion 10或Railo 4中,您可以使用cfscript中的Underscore.cfc filter()函数,如下所示:

var fileNamesArray = _.filter(form, function (value, field) {
    return FindNoCase('attachedFile', field);
});

filter()函数返回一个通过真值测试的值数组,在本例中为FindNoCase(...)。

使用函数式风格的程序设计可以产生更优雅,更富表现力的解决方案。

(注意:我写了Underscore.cfc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM