Used with CFELSE and CFELSEIF, CFIF lets you create simple and compound conditional statements in CFML. The value in the CFIF tag can be any expression.
<CFIF expression> HTML and CFML tags <CFELSEIF> HTML and CFML tags <CFELSE expression> HTML and CFML tags </CFIF>
Note that when testing for the return value of any function that returns a Boolean, you do not need to explicitly define the TRUE condition. The following code uses IsArray as an example:
<CFIF IsArray(myarray)>
When successful, IsArray
evaluates to YES, the string equivalent of the Boolean TRUE. This method is preferred over explicitly defining the TRUE condition:
<CFIF IsArray(myarray) IS TRUE>
In addition to using the decision functions in the expression, such as IsArray and IsBoolean, you can also use any of the ColdFusion operators in the expression.
CFML Operators | ||
---|---|---|
CFML Operator | Alternate | Checks that the right value is |
IS | EQUAL, EQ | equal to the left value. |
IS NOT | NOT EQUAL, NEQ | is not equal to the left value. |
CONTAINS | is contained within the left value. | |
DOES NOT CONTAIN | is not contained within the left value. | |
GREATER THAN | GT | is greater than the left value. |
LESS THAN | LT | is less than the left value. |
GREATER THAN OR EQUAL | GTE | is greater than or equal to the left value. |
LESS THAN OR EQUAL | LTE | is less than or equal to the left value. |
Do not substitute an equal sign (=) for the IS operator.
<!--- This example shows the interaction of CFIF, CFELSE, and CFELSEIF ---> ... <H3>CFIF Example</H3> <P>CFIF gives us the ability to perform conditional logic based on a condition or set of conditions. <P>For example, we can output the list of Allaire departments from the HRAPP datasource and only display them <B>IF</B> the location = Cambridge. <CFQUERY name="getAllaireDepartments" datasource="HRAPP"> SELECT Department_Name, Location From Departments </cfquery> <hr> <!--- use CFIF to test a condition when outputting a query ---> <P>The following departments are in Cambridge: <CFOUTPUT QUERY="getAllaireDepartments" > <CFIF location is "Cambridge"> <BR><Department:</B>#Department_Name# </CFIF> </CFOUTPUT> <CFQUERY name="getAllaireEmployees" datasource="HRAPP"> SELECT Department_Name, Location From Departments </cfquery> <P>If you would like more than one condition to be the case, you can ask for a list of departments in Cambridge <B>OR</B> San Francisco. If the department does not meet either condition, you can use CFELSE to show only the names and cities of the other departments. <CFOUTPUT QUERY="getAllaireEmployees"> <CFIF location is "San Francisco" OR location is "Cambridge"> <BR><I>#Department_Name#, #Location#</I> <CFELSE> <BR><I>#Department_Name#, #Location#</I> </CFIF> </CFOUTPUT> <!--- use CFIF to specify a conditional choice for multiple options; also note the nested CFIF ---> <hr> <P>You can also use CFELSEIF to provide one or more conditions.</P> <CFOUTPUT QUERY="getAllaireDepartments"> <CFIF location is "San Francisco"> <BR><I>#Department_Name#, #Location#</I> <CFELSEIF location is "Cambridge"> <BR><I>#Department_Name#, #Location#</I> <CFELSEIF location is "London"> <BR><I>#Department_Name#, #Location#</I> <CFELSE> <BR><I>#Department_Name#, #Location#</I> </CFIF> </CFOUTPUT> <P>For a more complex example of the use of CFIF, see <A HREF="listcontains.cfm">ListContains Example</A>.</P> </BODY> </HTML>