Hi

Does anybody have any ideas on how to add a third select box to the current
code below which only deals with two select boxes at the moment.  The code
below is taken from
http://www.webtricks.com/sourcecode/source_code.cfm?CodeID=18

It is using Javascript and Coldfusion to build the arrays and would be
interested to know if a third select can be added with the necessary
Coldfusion to add the dynamic capabilities the code below has


<!--- Select the states and area codes. --->
<cfquery datasource="#Request.App.ds#" name="GetStates">
SELECT S.State, S.StateCode, AC.AreaCode
  FROM States S, AreaCodes AC
 WHERE S.StateCode=AC.StateCode
 ORDER BY S.State, AC.AreaCode
</cfquery>

<!--- Select all the area codes. --->
<cfquery datasource="#Request.App.ds#" name="GetCodes">
SELECT AreaCode
  FROM AreaCodes
 ORDER BY AreaCode
</cfquery>

<script language = "JavaScript">
<!--
// For each state, create an array to hold the area codes.
// Each state array will be identified by the two-character state
abbreviation
<cfoutput query="GetStates" group="State">
   // Create the array
   StateArray#StateCode# = new Array();
   <cfset i = 0>
   // Populate the array
   <cfoutput>
      <cfset i = i + 1>
      StateArray#StateCode#[#i#] = #AreaCode#;
   </cfoutput>
</cfoutput>

// Function to populate the area codes for the state selected
function PopulateAreaCode() {
   // Only process the function if the first item is not selected.
   if (document.StateForm.StateCode.selectedIndex != 0) {
      // Find the state abbreviation
      var ThisState =
document.StateForm.StateCode[document.StateForm.StateCode.selectedIndex].val
ue;
      // Set the length of the arecode drop down equal to the length of the
state's array
      document.StateForm.AreaCode.length = eval("StateArray" + ThisState +
".length");
      // Put 'Select' as the first option in the area code drop-down
      document.StateForm.AreaCode[0].value = "";
      document.StateForm.AreaCode[0].text = "Select";
      document.StateForm.AreaCode[0].selected = true;
      // Loop through the state's array and populate the area code drop
down.
      for (i=1; i<eval("StateArray" + ThisState + ".length"); i++) {
         document.StateForm.AreaCode[i].value = eval("StateArray" +
ThisState + "[i]");
         document.StateForm.AreaCode[i].text = eval("StateArray" + ThisState
+ "[i]");
      }
   }
}
//-->
</script>

<form name="StateForm">
<p>
<table border="0">
   <tr>
      <td><b>State</b></td>
      <td><b>Area Code</b></td>
   </tr>
   <tr>
      <td>
         <select name="StateCode" onChange="PopulateAreaCode()">
            <option value="0">Select State
            <cfoutput query="GetStates" group="State">
               <option value="#StateCode#">#State#
            </cfoutput>
         </select>
      </td>
   <td>
      <select name="AreaCode" width="70" style="width:150" size="1">
         <option value="0">Select Area Code
         <cfoutput query="GetCodes">
            <option value="#AreaCode#">#AreaCode#
         </cfoutput>
      </select>
   </td>
   </tr>
</table>
</p>
</form>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
This list and all House of Fusion resources hosted by CFHosting.com. The place for 
dependable ColdFusion Hosting.

Reply via email to