我正在使用cfloop将动态表单值插入会话结构中。我使用reReplaceNoCase清理输入,并且在尝试在reReplaceNoCase方法中使用动态表单字段名称时遇到问题。我尝试了不同的命名方案,但无法确定语法。在发布的代码中,FORM.RTchoice [r]失败并显示错误:类型类[Ljava.lang.String; ..的Java对象中未定义元素RTCHOICE。如何获取要递增的表单字段“ r”正确吗?
<cfloop index="r" from="1" to="#APPLICATION.theCount#">
<cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", "#reReplaceNoCase(FORM.RTchoice[r], "[^a-zA-Z0-9.,(\s)-]", "", "all")#", 1)>
</cfloop>
答案 0 :(得分:2)
您可以使用
<cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", reReplaceNoCase(FORM['RTchoice#r#'], "[^a-zA-Z0-9.,(\s)-]", "", "all"), 1)>
或
<cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", reReplaceNoCase(FORM['RTchoice'&r], "[^a-zA-Z0-9.,(\s)-]", "", "all"), 1)>