首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CFIF语句中

在CFIF语句中
EN

Stack Overflow用户
提问于 2015-03-07 07:08:47
回答 4查看 1.4K关注 0票数 3

我正在从表单集中发送一个逗号分隔列表,除了第一个项之外,每个可能的选定项都只能在没有选择的情况下被添加。

QUANTY=10-1,1-0,2-0,3-0,4-0,5-0,7-0,6-0,8-0,9-0,15-0,13-0

列表中的每个元素都是一个数字、一个连字符和另一个数字。第一个数字是产品编号,第二个数字是数量。

如果列表中的第一个元素是10-1,则不能添加任何其他项,因此它们必须是数字-0,就像3-0中的那样。

如果任何其他元素包含-1,则此语句有效。

代码语言:javascript
复制
 <cfif ListFirst(QUANTY) IS "10-1" AND ListRest(QUANTY) contains "-1">
    <tr>
        <td align="center">
            <font color="#FF0000"><strong>
            You cannot add any features to the Basic Plan<p>
            Please click "Back" and reset your order.
            </strong></font>
        </td>
    </tr>
    <cfabort>
    </cfif>

当选择大于1的数量时,就会出现这样的问题:

QUANTY=10-1,1-0,2-0,3-0,4-0,5-0,7-0,6-0,8-4,9-0,15-0,13-0

在cfif语句中,我似乎无法让“中间”函数工作:

代码语言:javascript
复制
 AND ListRest(QUANTY) contains "-1">

如:

代码语言:javascript
复制
 AND ListRest(QUANTY) BETWEEN "-1" and "-50">

如有任何建议请见谅

EN

回答 4

Stack Overflow用户

发布于 2015-03-07 11:53:20

代码语言:javascript
复制
ListRest(quanty) contains "1"

对诸如"1-0“之类的值返回true。这显然不是你想要的。

我建议将您的字符串作为嵌套列表处理。外部列表为逗号删除,内部为连字符分隔。这种方法应该有效。

代码语言:javascript
复制
<cfif ListLast(ListFirst, Quanty, ","), "-") gt "0">
loop through the rest of Quanty and use ListLast to check 
the values after the hyphen
<cfelse>
code for this condition
</cfif>
票数 3
EN

Stack Overflow用户

发布于 2015-03-11 01:51:28

我尝试了上面的脚本,得到了一个错误.

我写了这篇文章,似乎还行:

代码语言:javascript
复制
 <cfset qty1 = "#ListFirst(QUANTY)#">
 <cfset qty2 = ListLast(qty1, "-")>
 <cfif (qty2 GT 0) AND  
   ((ListRest(QUANTY) contains "-1") OR 
   (ListRest(QUANTY) contains "-2") OR 
   (ListRest(QUANTY) contains "-3") OR 
   (ListRest(QUANTY) contains "-4") OR 
   (ListRest(QUANTY) contains "-5") OR 
   (ListRest(QUANTY) contains "-6") OR 
   (ListRest(QUANTY) contains "-7") OR 
   (ListRest(QUANTY) contains "-8") OR 
   (ListRest(QUANTY) contains "-9"))>

   do this
 </cfif>

谢谢,如果有一个较短的方式来写它,我将感谢输入。

票数 0
EN

Stack Overflow用户

发布于 2015-03-13 03:13:33

您的解决方案应该有效,但是正则表达式可能更优雅。

代码语言:javascript
复制
<cfif ListFirst(QUANTY) is "10-1" and REFind("-[1-9]",ListRest(QUANTY))>

Do something

</cfif>

应该行得通。Reg表达式非常有用。如果您以前没有使用过它们,那么上面的一个将查找一个破折号,后面跟着一个从1到9的数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28912379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档