Jump to content

Dynamic navigation menu problem


moghul

Recommended Posts

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>

 		";
    	}

 

 

 

   

Link to comment
https://forums.phpfreaks.com/topic/135635-dynamic-navigation-menu-problem/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.