Hi Everyone,
In my custom CMS site I am trying to create a dynamic main navigation which is basically a main menu with drop downs.
The HTML output pattern i need to create is as follows
<div id='navigationContainer'>
<div id='navigationPanel'>
<ul id='primaryNavigation'>
<li class='first'><a href='#'><span>Main menu item 0</span></a></li>
<li><a href='#'><span>Main menu item 1</span></a>
<ul class='navoptions'>
<li><a href='#'>Sub menu item 0</a></li>
<li><a href='#'>Sub menu item 1</a></li>
<li><a href='#'>Sub menu item 2</a></li>
<li><a href='#'>Sub menu item 3</a></li>
</ul>
</li>
<li><a href='#'><span>Main menu item 2</span></a>
<ul class='navoptions'>
<li><a href='#'>Sub menu item 0</a></li>
<li><a href='#'>Sub menu item 1</a></li>
<li><a href='#'>Sub menu item 2</a></li>
<li><a href='#'>Sub menu item 3</a></li>
</ul>
</li>
<li><a href='#'><span>Main menu item 3</span></a></li>
<li><a href='#'><span>Main menu item 4</span></a>
<ul class='navoptions'>
<li><a href='#'>Sub menu item 0</a></li>
<li><a href='#'>Sub menu item 1</a></li>
<li><a href='#'>Sub menu item 2</a></li>
<li><a href='#'>Sub menu item 3</a></li>
<li><a href='#'>Sub menu item 4</a></li>
</ul>
</li>
<li class='last'><a href='#'><span>Main menu item 5</span></a>
<ul class='navoptions'>
<li><a href='#'>Sub menu item 1</a></li>
<li><a href='#'>Sub menu item 2</a></li>
<li><a href='#'>Sub menu item 3</a></li>
<li><a href='#'>Sub menu item 4</a></li>
</ul>
</li>
</ul>
<div class='clearBoth'></div>
</div>
</div>
now consider that the menu items are all in the database as the names of my pages. I am currently using the following code snippet to try and output the menu but i just cant get the right output. Any one know what im doing wrong with my while loops?
Heres the code.
function get_primary_menu() {
$navPrimary .= "
<ul id='primaryNavigation'>
<li class='first'><a href='#'><span>Home</span></a></li>
";
$access=1;
$sql = mysql_query("SELECT id, file_name, page_name FROM webpage WHERE parentid='0' ORDER BY menu_position" ,$this->db);
while ($rc = mysql_fetch_row($sql)) {
$id_current = $rc[0];
$file_name_current = $rc[1];
$page_name_current = $rc[2];
$selected="";
if($id_current==$this->id OR $id_current==$this->parentid){ $selected="id='current'"; }
$navPrimary .= "<li><a href='http://www.domain.co.uk/$file_name_current' accesskey='$access'><span>$page_name_current</span></a>";
$navSecondary .= "<ul class='navoptions'>";
$sqlSec = mysql_query("SELECT id, file_name, page_name FROM webpage WHERE parentid='".$id_current."' AND showmenu!='n' ORDER BY menu_position" ,$this->db);
while ($rc = mysql_fetch_row($sqlSec)) {
$sid_current = $rc[0];
$sfile_name_current = $rc[1];
$spage_name_current = $rc[2];
$selected="";
$children="yes";
if($id_current==$this->id){ $selected="class='selected'"; }
$navSecondary .= " <li><A href='http://www.domain.co.uk/$sfile_name_current'>$spage_name_current</A></li>
";
}
if(!$children){
$navSecondary .="";
}
$navSecondary .= "
</ul>";
$navPrimary .= "
$navSecondary
</li>
";
$access++;
}
return $navPrimary."</ul>
";
}