Without digging too deeply, I notice you refer to ChapterArray#category# and
later ChapterArray#catno# -- I'm betting that the category and catno aren't
the same for a given row of your query, else you wouldn't have both columns.
I bet that's giving you your error -- or at least would cause another later
on.


  --Ben Doom
    Programmer & General Lackey
    Moonbow Software

: -----Original Message-----
: From: Ian Vaughan [mailto:[EMAIL PROTECTED]]
: Sent: Thursday, December 19, 2002 9:42 AM
: To: CF-Talk
: Subject: Re: Please help me achieve this with CF and Javascrip please
:
:
: Hi Neil
:
: I e-mailed a question to you at the start of December.
:
: What I was and still am trying to achieve was creating related selects
: generated from one database table and you provided me with some code.
:
: I am getting somewhere with this now and there is only one small part that
: needs to be resolved (javascript problem) before my deadline tommorrow for
: this to work correctly, and I am contacting you for your expert
: opinion with
: the hope of a possible solution please.
:
: Using the code below the first select box is being populated from the
: database as it should, however when I select an option from this list the
: second select does not list the related items and there is a javascript
: error
:
: 'ChapterArray1' is undefined.
:
: Can you see from my code where this may be going wrong??
:
:
: Ian
:
:
: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
:
: <html>
: <head>
:  <title>Untitled</title>
: </head>
:
: <body>
:
: <!--- Select the ATA_Chapter, ATA_Section and title_Codes. --->
: <CFQUERY name="query1" datasource="intranetv8">
: SELECT
: catno, category, parent_level from category_menu
: where parent_level = 0
: ORDER BY category
:
: </CFQUERY>
:
: <CFQUERY name="query2" datasource="intranetv8">
: SELECT
: catno, category, parent_level from category_menu
: where catno = parent_level
: ORDER BY category
:
: </CFQUERY>
:
: <!--- Select all the sub codes. --->
:
: <script language = "JavaScript">
: <!--
: // For each chapter, create an array to hold the sections.
: // Each chapter array will be identified by the ATA_Chapter
: <cfoutput query="query2" group="category">
: // Create the array
: ChapterArray#category# = new Array();
: ChapterArrayVal#catno# = new Array();
: <cfset i = 0>
: // Populate the array
: <cfoutput>
: <cfset i = i + 1>
: ChapterArray#catno#[#i#] = #category#;
: ChapterArrayVal#catno#[#i#] = "#parent_level# #category#";
: </cfoutput>
: </cfoutput>
:
:
: // Function to populate the ATA_Sub_Codes for the ATA_Code selected
: function PopulateATASubCode() {
: // Only process the function if the first item is not selected.
: var indx = document.InsertForm.ATACode.selectedIndex;
: if (indx != 0) {
: // Find the Chapter
: var ThisChapter = document.InsertForm.ATACode[indx].value;
: // Set the length of the ATA_Sub_Codes drop down equal to the
: length of the
: Chapter's array
: var len;
: len = eval("ChapterArray" + ThisChapter + ".length");
: document.InsertForm.ATA_SubCode.length = len;
: // Put 'Select' as the first option in the SubCode drop-down
: document.InsertForm.ATA_SubCode[0].value = "";
: document.InsertForm.ATA_SubCode[0].text = "Select Sub Category";
: document.InsertForm.ATA_SubCode[0].selected = true;
: // Loop through the chapter's array and populate the SubCode drop down.
: for (i=1; i<len; i++) {
: document.InsertForm.ATA_SubCode.value = eval("ChapterArray" +
: ThisChapter +
: "");
: document.InsertForm.ATA_SubCode.text = eval("ChapterArrayVal" +
: ThisChapter
: + "");
: }
: }
: }
: //-->
: </script>
:
: <html>
: <head>
: <title>Requirements Database Add Requirement</title>
: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
: </head>
: <body>
: <form action="#" method="POST" name="InsertForm" id="InsertForm">
: <table>
: <tr>
: <td> <select name="ATACode" onChange="PopulateATASubCode();">
: <option value="0">Select ATA Code <cfoutput query="query1"
: group="category">
: <option value="#catno#">#Category# #Category# </cfoutput>
: </select>
: <select name="ATA_SubCode" size="1">
: <option value="0">Select ATA Sub Code
: </select></td>
: </tr>
: </table>
:
: </body>
: </html>
:
:   ----- Original Message -----
:   From: Thomas Hoheneder
:   To: Ian Vaughan
:   Sent: Friday, November 01, 2002 6:27 PM
:   Subject: Re: Advanced Javascript and Forms ???
:
:
:   Hello Ian,
:
:   oh... I have seen that the link to earthweb.com was your own
: discovery ;-)
:   so you might know the example ;-)) [LOL]
:
:   The fine aspect of this algorithm is that the function bCascadeDrop()
: needs not to be updated any time (when just adding further selects and
: entries within them).
:   Only a new <select> tag and the appropriate Array elements need to be
: added.
:
:   Greetings from
:   Thomas
:     ----- Original Message -----
:     From: Ian Vaughan
:     To: [EMAIL PROTECTED]
:     Sent: Friday, November 01, 2002 3:58 PM
:     Subject: Advanced Javascript and Forms ???
:
:
:     Hi Thomas
:
:     I have been reading your postings on the javascript newsgroup and have
: been impressed with your knowledge with the language, and would
: be grateful
: if someone of your experience and caliber in javascript will be able to
: assist me in this problem I am having please.
:
:     I just have a quick query for you please, I have been trying to get my
: head around this week, but am still having problems, I would be
: grateful if
: you could help me out please.
:
:     In the script below I am trying to add another select box based on the
: value chosen from the second select box, so basically a third
: select box . I
: know I am going to perhaps need a new onchange value on the
: second select ?
: but where do the arrays need to be specified etc
:
:     I would appreciate a lead on this please
:
:     Thankyou
:     Ian
:
:
:     <SCRIPT LANGUAGE="JavaScript">
:
:
:     <!-- Begin
:     var minutesArray =  new Array("('Select Sub Category','',true,true)",
:     "('Management Team')",
:     "('Information Technology Steering Group')",
:     "('I.T.O.G')",
:     "('Technical Support')",
:     "('Customer Services')");
:     var backupArray =  new Array("('Select Sub Category','',true,true)",
:     "('Database Backups')",
:     "('Server Backups')",
:     "('General Backups')");
:     var DatabasesArray =  new Array("('Select a Sub
: Category','',true,true)",
:     "('')",
:     "('Oracle')",
:     "('Informix')",
:     "('Ingres')");
:     var wpaperArray =  new Array("('Select Sub Category','',true,true)",
:     "('Technical White Papers')",
:     "('Business White Papers')",
:     "('General')");
:     var adminArray =  new Array("('Select Sub Category','',true,true)",
:     "('Pasta Forms')",
:     "('Pasta Codes')",
:     "('Flexitime Forms')",
:     "('Expense Forms')");
:     var NetworksArray =  new Array("('Select Sub Category','',true,true)",
:     "('Fault Diagnostics')",
:     "('Diagrams')",
:     "('example')",
:     "('example')");
:     var ServersArray =  new Array("('Select Sub Category','',true,true)",
:     "('Citrix')",
:     "('Officepower')",
:     "('Unix')",
:     "('Windows 2000')",
:     "('example')");
:     var DesktopArray =  new Array("('Select Sub Category','',true,true)",
:     "('Setting up a new PC')",
:     "('example')",
:     "('example')",
:     "('example')");
:     var internetArray =  new Array("('Select Sub Category','',true,true)",
:     "('Updating the Corporate Intranet')",
:     "('Guide to Coldfusion')",
:     "('HTML Examples')",
:     "('etc')");
:     var templateArray =  new Array("('Select Sub Category','',true,true)",
:     "('Word Document Templates')",
:     "('Example Template')",
:     "('etc')");
:     var emailArray =  new Array("('Select Sub Category','',true,true)",
:     "('Microsoft Exchange')",
:     "('SMTP / POP 3')",
:     "('Officepower Mail')",
:     "('etc')");
:
:     function populateCategory(inForm,selected) {
:     var selectedArray = eval(selected + "Array");
:     while (selectedArray.length < inForm.category2.options.length) {
:     inForm.category2.options[(inForm.category2.options.length -
: 1)] = null;
:     }
:     for (var i=0; i < selectedArray.length; i++) {
:     eval("inForm.category2.options[i]=" + "new Option" +
: selectedArray[i]);
:     }
:     if (inForm.category1.options[0].value == '') {
:     inForm.category1.options[0]= null;
:     if ( navigator.appName == 'Netscape') {
:     if (parseInt(navigator.appVersion) < 4) {
:     window.history.go(0);
:     }
:     else {
:     if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
:     window.history.go(0);
:                 }
:              }
:           }
:
:     }
:     }
:     // End -->
:     </script>
:
:
:     <select name="category1"
: onChange="populateCategory(document.form,document.form.category1.o
ptions[doc
: ument.form.category1.selectedIndex].value)" style="font-size:
: 7.0pt; width:
: 183px; height: 20px;">
:     <option selected value=''>Select a Category</option>
:     <option value='Anti Virus'>Anti Virus</option>
:     <option value='backup'>Business Continuity</option>
:     <option value='wpaper'>Whitepapers</option>
:     </select>
:
:     <select name="category2" style="font-size: 7.0pt; width:
: 183px; height:
: 20px;">
:     <option value=''><--------------------</option>
:     </select>
:
: 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
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
Get the mailserver that powers this list at http://www.coolfusion.com

Reply via email to