CFIF |
Description Creates simple and compound conditional statements in CFML. Tests an expression, variable, function return value, or string. Used, optionally, with the cfelse and cfelseif tags.
Category Flow-control tags
Syntax
    <cfif expression>
       HTML and CFML tags
    <cfelseif expression>
       HTML and CFML tags
    <cfelse>
       HTML and CFML tags
    </cfif>
See also cfelse, cfelseif, cfabort, cfbreak, cfexecute, cfexit, cflocation, cfloop, cfswitch, cfthrow, cftry
Usage If the value of the expression in the cfif tag is True, ColdFusion processes all the code that follows, up to any cfelseif or cfelse tag, and then skips to the cfif end tag. Otherwise, ColdFusion does not process the code that immediately follows the cfif tag, and continues processing at any cfelseif or cfelse tag, or with the code that follows the cfif end tag.

When testing the return value of a function that returns a Boolean, you do not have to define the True condition explicitly. This example uses the IsArray function:

    <cfif IsArray(myarray)>

If successful, IsArray evaluates to yes, the string equivalent of the Boolean True. This is preferred over explicitly defining the True condition this way:

    <cfif IsArray(myarray) IS True>

This tag requires an end tag.

Example In this example, variables are shown within number signs. This is not required.
    <!--- This example shows the interaction of cfif, cfelse, and cfelseif. --->
    <!----- First, perform a query to get some data. ----->
    <cfquery name="getCenters" datasource="cfdocexamples">
       SELECT Center_ID, Name, Address1, Address2, City, State, Country,
          PostalCode, Phone, Contact
       FROM Centers
       ORDER by City, State, Name
    </cfquery>
    <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 Centers from the snippets datasource
    by group and only display them <b>IF</b> City = San Diego.
    <hr>
    <!---- Use CFIF to test a condition when outputting a query. ----->
    <p>The following centers are in San Diego:
    <cfoutput query="getCenters">
          <cfif Trim(City) is "San Diego">
             <br><b>Name/Address:</b>#Name#, #Address1#, #City#, #State#
             <br><b>Contact:</b> #Contact#
             <br>
          </cfif>
    </cfoutput>
    <hr>
    <p>If we would like more than one condition to be the case, we can ask for
    a list of the centers in San Diego <b>OR</b> Santa Ana. If the center
    does not follow this condition, we can use CFELSE to show only
    the names and cities of the other centers.
    <p>Notice how a nested CFIF is used to specify the location of
    the featured site (Santa Ana or San Diego).
    <!----- Use CFIF to specify a conditional choice for multiple options;
    also note the nested CFIF. --->
    <p>Complete information is shown for centers in San Diego or Santa Ana.
    All other centers are listed in italics:
    <cfoutput query="getCenters">
       <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana">
          <h4>Featured Center in
             <cfif Trim(City) is "San Diego">
                San Diego
             <cfelse>
                Santa Ana
             </cfif>
             </h4> <b>Name/Address:</b>#Name#, #Address1#, #City#, #State#
             <br><b>Contact:</b> #Contact#<br>
       <cfelse>
          <br><i>#Name#, #City#</i>
       </cfif>
    </cfoutput>
    <hr>
    <p>Finally, we can use CFELSEIF to cycle through a number of conditions and
    produce varying output. Note that you can use CFCASE and CFSWITCH for a more
    elegant representation of this behavior.
    <!--- Use CFIF in conjunction with CFELSEIF to specify more than one
       branch in a conditional situation. --->
    <cfoutput query="getCenters">
       <cfif Trim(City) is "San Diego" OR Trim(City) is "Santa Ana">
          <br><i>#Name#, #City#</i> (this one is in
                <cfif Trim(City) is "San Diego">San Diego
                <cfelse>Santa Ana
                </cfif>)
             <cfelseif Trim(City) is "San Francisco">
                <br><i>#Name#, #City#</i> (this one is in San Francisco)
             <cfelseif Trim(City) is "Suisun">
                <br><i>#Name#, #City#</i> (this one is in Suisun)
             <cfelse> <br><i>#Name#</i>
                <b>Not in a city we track</b>
             </cfif>
    </cfoutput>