ColdFusion if语句值不返回true,而是返回false

ColdFusion if语句值不返回true,而是返回false,coldfusion,Coldfusion,在我的代码中,我正在查询我的数据库以获取城市 我写了一个if语句,表示这个城市是否等于db中的那个值。返回该城市的图像。然而,它返回了一个不同的图像,它将进入if语句的false块 我对city变量执行了cfdump,它返回我想要的城市,但由于某种原因,它返回的是false而不是true。我不确定我做错了什么。这是我的密码 <cfloop query="testData"> <cfif #city# EQ 'Portland'> <!---

在我的代码中,我正在查询我的数据库以获取城市

我写了一个if语句,表示这个城市是否等于db中的那个值。返回该城市的图像。然而,它返回了一个不同的图像,它将进入if语句的false块

我对city变量执行了
cfdump
,它返回我想要的城市,但由于某种原因,它返回的是false而不是true。我不确定我做错了什么。这是我的密码

 <cfloop query="testData">
    <cfif #city# EQ 'Portland'>
       <!--- I want it to go to this block --->
       <img src="images/portlandcity.jpg" alt="Portland City">
    <cfelseif #city# EQ 'San Jose'>
       <img src="images/sanjosecity.jpg alt="San Jose City">
    <cfelse>
       <!-- its going to this block instead of going to my Portland city block. --->
       <img src="images/randomcityimage.jpg alt="False block">
    </cfif>

    <!-- Dumped out city variable in the loop and it returns 'Portland'.
         However, it's going to the false block for some reason and I am not sure why --->
    <cfdump var="#city#"> 
 </cfloop>

您可以在代码中尝试以下操作,以防止项目带有空格:

注意,我去掉了变量周围的#,并添加了trim()函数。 在If语句中,您不需要使用#符号


您可以在代码中尝试以下操作,以防止项目带有空格:

注意,我去掉了变量周围的#,并添加了trim()函数。 在If语句中,您不需要使用#符号



它的值可能并不完全等于“波特兰”,但确实如此。我对city变量做了一个cfdump,它返回的是“Portland”,没有额外的空格?标签?返回?在转储中看不到的不可见字符?在查询中执行ltrim(rtrim(city))。或者在ColdFusion中检查它的长度。字段中有空格或无效字符。仅为了清理代码,您不需要if语句中的#around city。只有在引号中才需要它。它的值可能并不完全等于“波特兰”。但它是。我对city变量做了一个cfdump,它返回的是“Portland”,没有额外的空格?标签?返回?在转储中看不到的不可见字符?在查询中执行ltrim(rtrim(city))。或者在ColdFusion中检查它的长度。字段中有空格或无效字符。仅为了清理代码,您不需要if语句中的#around city。只有在引用的情况下你才需要它。
 <cfif trim(city) EQ 'Portland'>
   <img src="images/portlandcity.jpg" alt="Portland City"> <!--- I want it to go to this block --->
<cfelseif trim(city) EQ 'San Jose'>
   <img src="images/sanjosecity.jpg alt="San Jose City">
<cfelse>
   <img src="images/randomcityimage.jpg alt="False block"> <!-- its going to this block instead of going to my Portland city block. --->
</cfif>