<!--- This example shows how to use the StructKeyList
      function to list the keys within a specified structure.
	  It also uses the StructNew function to create the structure
	  and fills its fields with the information the user types 
	  into the corresponding form fields. --->
	  
<!--- This section of code creates the new structure and checks to 
      see if the submit button has been pressed.  If it has been
	  pressed, the code defines fields in the employee structure
	  with what the user has entered from the form. --->
<CFSET employee=StructNew()>  
<CFIF Isdefined("Form.Submit")>
	<CFIF Form.Submit is "OK">
		<CFSET employee.firstname = FORM.firstname>
		<CFSET employee.lastname = FORM.lastname>
		<CFSET employee.email = FORM.email>
		<CFSET employee.phone = FORM.phone>
		<CFSET employee.company = FORM.company> 
	<CFELSEIF Form.Submit is "Clear">
		<CFSET rc=StructClear(employee)>
	</CFIF>
</CFIF>	  
	  

	  
<HTML>
<HEAD>
<title>StructKeyList Function</title>
</HEAD>

<BASEFONT FACE="Arial, Helvetica" SIZE=2>

<BODY  bgcolor="#FFFFD5">

<H3>StructKeyList Function</H3>
<H3>Listing the Keys in the Employees Structure</H3>
<P>
This example uses the StructNew function to create a structure 
that supplies employee information.  The data structure is called 
"employee" and its fields are filled with the contents of the following form.
After you have entered employee information into the structure, the example uses 
the <b>StructKeyList</b> function to list all of the keys in the structure.
This code does not show how to
insert this information into a database.  See CFQUERY for more information
about database insertion.

<HR size="2" color="#0000A0">
<FORM action="structkeylist.cfm" method="post">
<table cellspacing="2" cellpadding="2" border="0">
	<tr>
	<td>First Name:</td>
	<td><INPUT name="firstname" type="text" value="" hspace="30" maxlength="30"></td>
	</tr>
	<tr>
	<td>Last Name:</td>
	<td><INPUT name="lastname" type="text" value="" hspace="30" maxlength="30"></td>
	</tr>
	<tr>
	<td>EMail</td>
	<td><INPUT name="email" type="text" value="" hspace="30" maxlength="30"></td>
	</tr>
	<tr>
	<td>Phone:</td>
	<td><INPUT name="phone" type="text" value="" hspace="20" maxlength="20"></td>
	</tr>
	<tr>
	<td>Company:</td>
	<td><INPUT name="company" type="text" value="" hspace="30" maxlength="30"></td>
	</tr>
	<tr>
	<td><input type="submit" name="submit" value="OK"></td>
	<td><b>After you submit the form, scroll down to see the list.</b></td>
	</tr>
</table>
</FORM>



<CFIF NOT StructISEmpty(employee)> 
	<HR size="2" color="#0000A0"> 
	<CFSET keysToStruct = StructKeyList(employee,"<LI>")>
	<P>Here are the keys to the structure:</P> 
	<UL>
	<LI>
	<CFOUTPUT>#keysToStruct#</CFOUTPUT>
	</UL>

	<P>	
 	If these fields are correct, we can process your new employee information. 
 	If they are not correct, you should consider rewriting your application.
	</P>
 
</CFIF>


</BODY>
</HTML>
