Programming instructions
110 Lesson 4 Validating Data to Enforce Business Rules
</body>
</html>
7 View the tripedit.cfm page in a browser and test the client- and server-side field
validations by filling out the fields on the form and clicking Save.
Testing recommendations:
• Omit required fields such as trip name or location.
• Make the departure date an invalid date like 12/32/2002.
• Enter a non-numeric value in number of people such as one.
Using cfselect tag to present valid event types
Currently the event types in tripedit.cfm are hard coded:
<!--- Field: eventType --->
<tr>
<td valign="top">Type of Event
</td>
<td>
<cfselect size="1" name="eventType" required="Yes" message="Type of
event must be selected.">
<option value="1" selected>Surfing</option>
<option value="2">Mountain Climbing</option>
<option value="3">Mountain Biking</option>
</cfselect>
</td>
</tr>
As described in Lesson 1, the tutorial application design includes a database table that
holds event types. The event type in the Trips table is an identifier used as a foreign key to
the eventtypes table (which holds the actual event names). In the previous code, each
option tag contains a value attribute and option text, such as Surfing. These values
come from the eventtypes table so that they are not hard-coded. The eventtypes table
column
eventTypeID is used for the value attribute and the eventType for the literal
value that is displayed in the select box. To retrieve the data from this table, you must
include the following
cfquery:
<cfquery name="GetEvents" datasource="CompassTravel">
SELECT eventType, eventTypeID
FROM eventtypes
</cfquery>
To exploit the query in the option tags, you can replace the HTML select tag with
cfselect.
The cfselect tag
The
cfselect tag is an improved version of the HTML select tag. Like other
ColdFusion form tags, the
cfselect tag provides the required and message attributes
that validate the data entered. Using the
cfselect tag and the preceding cfquery, you
can implement the
eventType field data entry as follows: