构造CFIF语句以在变量值不为空时显示内容

时间:2014-10-07 18:06:20

标签: coldfusion coldfusion-10

我正在尝试写一个If语句,如果"session.checkout.info.abc_1Certificate_1"存在并且不是空白则显示它。但如果"session.checkout.info.abc_1Certificate_1"为空,则不要显示。

这是我提出的,但它无法正常工作..

<cfif (len(trim("session.checkout.info.abc_1Certificate_1")))>
  Certificate:&nbsp;#session.checkout.info.abc_1Certificate_1#
</cfif>

2 个答案:

答案 0 :(得分:4)

你真的很想要这样的东西:

<cfif structKeyExists(session.checkout.info,"abc_1Certificate_1") AND len(trim(session.checkout.info.abc_1Certificate_1)) GT 0>

这就是说:如果结构abc_1Certificate_1中有一个名为session.checkout.info的密钥,并且删除了任何填充空格的session.checkout.info.abc_1Certificate_1值的长度大于0,那么。 ..

如果session.checkout.info.abc_1Certificate_1不存在,则len(trim(session.checkout.info.abc_1Certificate_1))通常会抛出错误,但由于ColdFusion首先处理AND左侧的语句部分(并且电路评估)CF不会费心去审查声明的其余部分。

答案 1 :(得分:4)

试试这个

<cfif isDefined("session.checkout.info.abc_1Certificate_1") 
       AND len(trim(session.checkout.info.abc_1Certificate_1))>
  Certificate:&nbsp;#session.checkout.info.abc_1Certificate_1#
<cfelse>
  session.checkout.info.abc_1Certificate_1 doesn't exist or is blank
</cfif>