Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

nested loop accordian menus

Posted on 2009-07-06
9
Medium Priority
?
438 Views
Last Modified: 2013-11-19
I have a function for creating a nested UL based on data in my MYSQL table
.... thanks shahzadfatehali for recent help

I want to format the UL so I can use it in the script for creating accordian menus
http://www.dynamicdrive.com/dynamicindex17/ddaccordion.htm

function createMenu1($parentid) {
 $Result = mysql_query("SELECT * FROM tblcategory WHERE Status=1 and ParentCategoryID = '".$parentid."'");
 $output = '';
 if(mysql_num_rows($Result) > 0){
       $output .= '<ul>';
             while ($Row = mysql_fetch_assoc($Result)) {
              $output .= '<li>'.$Row['CategoryName'];
              $output .= createMenu1($Row['CategoryID']);
              $output .= '</li>';
             }
       $output .= '</ul>';
       }
 mysql_free_result($Result);
 return $output;
}
0
Comment
Question by:joomla
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
9 Comments
 
LVL 9

Expert Comment

by:Shahzad Fateh Ali
ID: 24783852
Try this
http://www.dynamicdrive.com/dynamicindex17/ddaccordionmenu-bullet.htm

and the html generated by above code will work.


0
 

Author Comment

by:joomla
ID: 24784065
Yes, I noticed that link and examined that code they supply for subcategories.

The challenge here is to apply the categoryitems and subcategoryitems to the appropriate UL within the nested loop.

thanks


0
 
LVL 9

Expert Comment

by:Shahzad Fateh Ali
ID: 24784163
PHP function takes care of it. Did you try it?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Comment

by:joomla
ID: 24788354
Yes, I tried it
you'll notice in the code within http://www.dynamicdrive.com/dynamicindex17/ddaccordionmenu-bullet.htm
it refers to "categoryitems" & "subcategoryitems".
it is specially this which is causig me the trouple
0
 
LVL 9

Expert Comment

by:Shahzad Fateh Ali
ID: 24791613
paste your code and i will modify fix it
0
 

Author Comment

by:joomla
ID: 24799560
Hi shahzadfatehali:
sorry I was unavailable yesterday
I'm don't have any code that actually works

function createMenu1($parentid) {
global $objDB;
$SQL="SELECT * FROM tblcategory WHERE Status=1 and ParentCategoryID = '".$parentid."'";
//echo $SQL; die;
$rs=$objDB->select($SQL);
$output = '';
if(count($rs) > 0){
       $output .= '<ul class="subcategoryitems">';
       for($i=0;$i<count($rs);$i++) {
              $output .= '<li><a href="index1.php?p=cms&CMSID='.$rs[$i]["CMSID"].'" class="subexpandable" >'.$rs[$i]["CategoryName"].'</a>';  
              $output .= createMenu1($rs[$i]['CategoryID']);
              $output .= '</li>';
             }
       $output .= '</ul>';
       }
 return $output;
}

Here is a url in which the top menu cascades properly
http://www.bluelilyclients.com/idh/index1.php?p=accordian

Note that under 'about us' there are a number of submenu with tickmaks
The url also shows the attempted accordion menu
0
 

Author Comment

by:joomla
ID: 24799573
I suspect I have to find a way to correctly identify each li that contains a submenu and not close that li until all children have been crawled
0
 
LVL 9

Expert Comment

by:Shahzad Fateh Ali
ID: 24802396
I guess your problem will be resolved if you replace  class="subcategoryitems" with some unique work or use id instead. You are using same class for all sub <UL>s with make them hidden.
0
 

Accepted Solution

by:
joomla earned 0 total points
ID: 25093711
unfortunately I never did resolve this and have moved on to another task
I'm happy to close this off
thanks for your efforts
Michael
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Building a website can seem like a daunting task to the uninitiated but it really only requires knowledge of two basic languages: HTML and CSS.
There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
In this tutorial viewers will learn how to style a decorative dropcap for the first letter in a paragraph using CSS. In CSS, create a new paragraph class by typing "p.fancy": Then, to style only the first letter of the first sentence, include the ps…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question