See my response to Girish' post. You can't have JavaScript talking to PHP in real-time for user-interaction. You either need to send your ENTIRE tree to JavaScript, or make the user choose on each page from a sub-menu... For that, you would just need to have JavaScript set the location to something involving the ID of the sub-category so PHP can then generate a new menu. -- WARNING [EMAIL PROTECTED] address is an endangered species -- Use [EMAIL PROTECTED] Wanna help me out? Like Music? Buy a CD: http://l-i-e.com/artists.htm Volunteer a little time: http://chatmusic.com/volunteer.htm ----- Original Message ----- From: Nelson Goforth <[EMAIL PROTECTED]> Newsgroups: php.general To: <[EMAIL PROTECTED]> Sent: Monday, September 10, 2001 3:06 PM Subject: Hierarchic menus using Javascript and PHP? > On my site I have a page that takes input into a MySQL database > (though this isn't a db question). > > Each entry has a category and a subcategory entry, which should come > from predefined lists and are therefore instituted as pull-down > lists. The category list is in a PHP array which feeds a SELECT > pull-down list. The subcategory choices should depend upon what > category is selected. In order to ease user input, I've used a > javascript function to cause the subcategory pulldown to depend upon > the category selection. Thus if the category is Animals, the > subcategory SELECT would show "dog", "cat", "fish" - but if the > category were "Colors" the possible subcategories might be "Red", > "Green", "Yellow", "Puce". > > On the initial entry - a blank record - this all works fine. But if > I go back in to modify a record I run into trouble, as I can't make > the page reflect the stored value of the subcategory within the > pull-down list (i.e. as the SELECTED item). > > > I use the following PHP code to display the $categories array - and > if there is a stored value ( $formValues["category"] ) it displays > that selection as "SELECTED" - which is exactly right. > > printf("<TR><TD>Category </TD>"); > printf("<TD><SELECT NAME=category ONCHANGE=\"updateCats()\">\n"); > printf("<OPTION VALUE=0> === Select One === </OPTION>\n"); > > $i=0; > while ($i < count($categories)) { > printf("<OPTION VALUE=%s %s>%s</OPTION>\n", > $categories[$i], > $categories[$i] == $formValues["category"] ? "SELECTED" : "", > $categories[$i]); > $i++; > } > > printf("</SELECT></TD></TR>); > > But when it comes to the Sub-Category the list that feeds the SELECT > list is not in an array, but is coming from the JavaScript function > like: > > if(subCategoryIndex == 1) // Colors > document.search.subcategory.options[1] = new Option('Red'); > document.search.subcategory.options[1].value = "red"; > document.search.subcategory.options[2] = new Option('Blue'); > document.search.subcategory.options[2].value = "blue"; > ...etc... > > I can't figure a way to make the 'Update' version of the page display > the value of the Sub-Category in a select list (so that the user CAN > update it). I can certainly have the value display, but it no long > has the other possible members of the list, since it's not coming > from a display. > > I couldn't see a way to do this (updating one form element from > another) completely in PHP - else I would have. > > Does anyone have any ideas? > > Could I feed a PHP array FROM JavaScript? If I could get the > subcategory selection list into an arry I think I could make this > work. > > Or possibly use another JavaScript script inside the PHP portion of > the page in order to force it to mark the appropriate item > "SELECTED"? I tried this but couldn't make it work. > > Any help is appreciated - Thanks, > Nelson > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]