好的,这是一件事,我有一个表单,当提交时只能更新表格,当一个特定的复选框形式变量值相同时,如果一个不同,那么它应该继续更新表格。所以基本上用户正在选择不同的行并点击提交按钮。
例如,好的提交将是
form.claimid = 12,12,12,12,12
提交错误
form.claimid = 1,5,77,33,4,
如果form.claimid列表中的所有值都相同,我不确定如何检入列表?
我很感激任何想法。
答案 0 :(得分:1)
如果版本足够,你也可以使用CF的原生ListRemoveDuplicates()(CF10,Railo / Lucee 4)
https://wikidocs.adobe.com/wiki/display/coldfusionen/ListRemoveDuplicates
<cfif ListLen(ListRemoveDuplicates(mylist)) eq 1>
我会将此作为旧CF的替代方法。
如果form.claimid列表中的所有值都相同,我不确定如何检查列表?
有几种方法,其中大多数涉及循环,但我将向您展示一个可以做到这一点的正则表达式。我们将使用ListFirst获取第一个值,并对该值使用ReReplace来查看是否每个其他值匹配。
我在这里使用循环但仅作为演示。
<cfoutput>
<cfset mylist = "11,22,33,44|44,44,33,44|557,557,557">
<cfloop list="#mylist#" index="m" delimiters="|">
<cfset matchele = listfirst(m)>
<cfset eradicate = rereplace(m,"(?:(?:^|,)#matchele#(?=,|$))+","","ALL")>
"#m#", "#matchele#", "#eradicate#"<br />
</cfloop>
</cfoutput>
答案 1 :(得分:0)
如果你卡在CF 9或更低版本上,你可以遍历列表并将元素放入struct
:
<cfset list_coll = structNew() />
<cfloop list="#mylist#" index="myitem">
<cfset list_coll[myitem] = "dummy" />
</cfloop>
<cfif structCount(list_coll) EQ 1>
<!--- This is good --->
<cfelse>
<!--- This is bad --->
</cfif>
这可行的原因是struct
不能有重复的密钥。