User Guide

Table Of Contents
Passing variables to custom tags and UDFs 73
Validating data
It is often not sufficient that input data merely exists; it must also have the right format. For
example, a date field must have data in a date format. A salary field must have data in a numeric
or currency format. There are many ways to ensure the validity of data, including the following
methods:
Use the cfparam tag with the type attribute to validate a variable.
Use the IsValid function to validate a variable.
Use the cfqueryparam tag in a SQL WHERE clause to validate query parameters.
Use cfform controls that have validation attributes.
Use a form input tag with a hidden attribute to validate the contents of a form input field.
Note: Data validation using the cfparam, cfqueryparam, and form tags is done by the server.
Validation using
cfform tags and hidden fields is done using JavaScript in the user’s browser, before
any data is sent to the server.
For detailed information on validating data in forms and variables, see Chapter 28, “Validating
Data,” on page 659. For detailed information on validating query parameters, see “Using
cfqueryparam” on page 473.
Passing variables to custom tags and UDFs
The following sections describe rules for how data gets passed to custom tags and user-defined
functions that are written in CFML, and to CFX custom tags that are written in Java or C++.
Passing variables to CFML tags and UDFs
When you pass a variable to a CFML custom tag as an attribute, or to a user-defined function as
an argument, the following rules determine whether the custom tag or function receives its own
private copy of the variable or only gets a reference to the calling page’s variable:
Simple variables and arrays are passed as copies of the data. If your argument is an expression
that contains multiple simple variables, the result of the expression evaluation is copied to the
function or tag.
Structures, queries, and cfobject objects are passed as references to the object.
If the tag or function gets a copy of the calling pages data, changes to the variable in the custom
tag or function do not change the value of the variable on the calling page. If the variable is passed
by reference, changes to the variable in the custom tag or function also change the value of the
variable in the calling page.
To pass a variable to a custom tag, you must enclose the variable name in number signs. To pass a
variable to a function, do not enclose the variable name in number signs. For example, the
following code calls a user-defined function using three Form variables:
<cfoutput>
TOTAL INTEREST: #TotalInterest(Form.Principal, Form.AnnualPercent,
Form.Months)#<br>
</cfoutput>