# StructKeyList

Returns the list of keys that are in the specified ColdFusion structure.

See also StructKeyArray, StructClear, StructDelete, StructFind, StructInsert, StructIsEmpty, StructCount, and StructUpdate.

### Syntax

    StructKeyList(structure, [delimiter])

##### structure

Structure from which the list of keys are to be extracted.

##### delimiter

Optional. The value of this parameter indicates the character that will separate the keys in the list. By default, a comma (,) is used.

### Usage

The list of keys returned by StructKeyList is not in any particular order. In order to sort keys alphabetically or numerically, use ListSort.

Note that this function throws an exception if structure does not exist.

### Example

    <!--- 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.
    </P>
    <P>
    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.
    </P>
    <P>
    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>