There is a real nice artice by Doug Boude that should be exactly what you
need to read. P.S I am not him!! Just the same initials :)

http://www.dougboude.com/blog/1/2006/06/Recursive-Functions-in-ColdFusion.cfm


Doug B.



----- Original Message ----- 
From: "Ian Vaughan" <[EMAIL PROTECTED]>
To: "CF-Talk" <[email protected]>
Sent: Thursday, January 25, 2007 2:58 AM
Subject: Adding a third hierarchy option to navigation ?


> Using the SQL, Javascript and CF code below, how can I add the
> functionality of adding a third hierarchical level to the form select
> boxes but if a third level does not exist in the database table, it will
> show as 'Not Populated' in a third form select box and the value will be
> taken from the second select box for the form processing page.
>
>
>
> DB Structure is as follows
>
>
>
> CATNO
>
> CATEGORY
>
> PARENT_LEVEL
>
> 0
>
> Documents
>
>
>
> 1
>
> Main Category 1
>
> 0
>
> 2
>
> Main Category 2
>
> 0
>
> 1.1
>
> Child Category 1
>
> 1
>
> 2.1
>
> Child Category 2
>
> 2
>
> 1.11
>
> 3rd Level Category 1
>
> 1.1
>
> 2.11
>
> 3rd Level Category 2
>
> 2.1
>
>
>
> Any ideas would be most helpful ?
>
>
>
> Thanks
>
>
>
> Ian
>
>
>
> <!--- COLDFUSION CODE --->
>
>
>
> <cfquery name="pull_cat" datasource="">
>
> Select catno, category
>
> >From docmenu
>
> Where parent_level = 0
>
> Order by category
>
> </cfquery>
>
>
>
>
>
> <cfquery name="pull_sub_cat" datasource="">
>
> Select catno, category, parent_level
>
> >From docmenu
>
> Where parent_level is not null
>
> Order by parent_level, category
>
> </cfquery>
>
>
>
>  <!--- JAVASCRIPT CODE --->
>
>
>
>
>
> <script language="javascript">
>
>
>
> //make sure you specify the group="...." here
>
>
>
> <cfoutput query="pull_sub_cat" group="parent_level">
>
>
>
> //create 2D array
>
> //[0] will hold the primary key of the sub category the other, [1], the
> sub category name
>
>
>
> var subArray_2Vals_#parent_level# = new Array();
>
>
>
> <cfset arrayCount = 0>
>
>
>
> <cfoutput>
>
> subArray_2Vals_#parent_level#[#arrayCount#] = new Array ();
>
> subArray_2Vals_#parent_level#[#arrayCount#][0] = "#catno#";
>
> subArray_2Vals_#parent_level#[#arrayCount#][1] = "#Trim(category)#";
>
> <cfset arrayCount = arrayCount + 1>
>
> </cfoutput>
>
>
>
> </cfoutput>
>
>
>
> //The function to call up the proper sub categories
>
> function getSubs() {
>
>
>
> //catVal is the current selected Category
>
> catVal =
> document.form.cat.options[document.form.cat.selectedIndex].value;
>
>
>
> //empty any old values out of the sub category drop down
>
> document.form.sub_cat.length = 0;
>
>
>
> //I use 0 for my default "select a category first option".. you can use
> whatever you'd like. Basically if
>
> //no category is selected set the sub category drop down back to the
> default of "select a
>
> // category first"
>
>
>
> if(catVal == "none") {
>
> document.form.sub_cat.options[0] = new Option('-- Select a Category
> First --', 0);
>
> }
>
> else {
>
> var full_2val_Name = "subArray_2Vals_" + parseInt(catVal);
>
> var val_array = eval(full_2val_Name);
>
>
>
>
>
> //loop through the proper sub category array making new options in
>
> //the sub category drop down as you go along
>
>
>
> for(var i=0; i < val_array.length; i++) {
>
>
>
> document.form.sub_cat.options[i] = new Option(val_array[i][1],
> val_array[i][0]);
>
>
>
> }
>
> }
>
> }
>
> </script>
>
>
>
>
>
>  <!--- FORM SELECT BOXES CODE --->
>
>
>
> <select name="cat" onchange="getSubs();">
>
> <option value="none">-- Select A Main Category --
>
> <option></option>
>
> <cfoutput query="pull_cat">
>
> <option value="#catno#">#category#
>
> </cfoutput>
>
> </select>
>
>
>
> <select  name="sub_cat">
>
> <option value="none">-- Select a Main Category First --
>
> </select>
>
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Upgrade to Adobe ColdFusion MX7 
Experience Flex 2 & MX7 integration & create powerful cross-platform RIAs 
http:http://ad.doubleclick.net/clk;56760587;14748456;a?http://www.adobe.com/products/coldfusion/flex2/?sdid=LVNU

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:267582
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to