Ik wil graag mijn eigen CMS menu maken, ik had een mooi DHTML menu gemaakt met Sothink DHTML menu, maar dit is voor mij niet om te zetten naar PHP.

Een eigen menu, wat heeft een menu, een hierachie, soort van boomstructuur. Ik wil 3 verschillende items hebben : categorie, parent, child.

Nu heb ik het een en ander kunnen vinden over hoe je een hierachie maakt. Dit is mij nu gelukt, maar nog ben ik er niet. hier heb ik het grootste deel van de code vandaan.

Zie hier mijn script :


<?php
include_once("**DATABASCONNECTIE**");
$categorie = $_GET['categorie'];
$parent = $_GET['parent'];
$child = $_GET['child'];

function display_children($parentID, $level) {
   $result = mysql_query('SELECT * FROM menu '.
                          'WHERE parentID="'.$parentID.'";');

   if ($level == 0)
  {
  	$test = "categorie";
  }
   if ($level == 1)
  {
  	$test ="parent";
  }
   if ($level == 2)
  {
  	$test = "sub";
  }

   while ($row = mysql_fetch_array($result)) {
       echo str_repeat('  ',$level).$row['titel'] .$test." <br />\n";
       display_children($row['ID'], $level+1);
   }
}
echo"<b>Algemeen</b><br />\n";
display_children('1',1);
echo"<b>Producten</b><br />\n";
display_children('8',1);
?>



Dit script haalt nu het volgende uit de database :

Algemeen
->Nieuws
->Het bedrijf
->->Algemene voorwaarden
->->Landenoverzicht
->->Netwerkinformatie
->Contact
Producten
->Bestellen
->->Domeinnaam


Maar, nu wil ik dus dat als je de website bezoekt dat je in eerste instantie alleen de categorie en de parent items ziet, en dat je de sub items pas ziet als je er op klikt. Nu vind ik het menu van www.pcextreme.nl een erg goed voorbeeld, want dit is ook precies wat ik wil hebben. Ik weet niet of het menu aan een database zit en of het cms is!? Maar dat is wel wat mijn doel is.
Wie kan mij een tip geven en misschien verder op weg helpen?

Ik stel het zeer op prijs.
Hartelijk dank alvast!

**EDIT : Het script dat je nu ziet is alleen voor de 'frontend' van mijn CMS, het edit gedeelte moet ik nog maken. **
om het makkelijker te maken, zo gaat het simpeler:


TABLE
-----------------------
 id | naam | connectid
-----------------------
  1 | test |           
  2 | melk |     6     
  3 | henk |     1     
  4 | fred |     1     
  5 | kees |     1     
  6 | jan  |     1     
  7 | klap |     2     
  8 | vuur |     2     
  9 | mees |     6     
 10 | gijs |     9


op die manier krijg je


- test
	- henk
		- klap
		- vuur
	- fred
	- kees
	- jan
		- mees
			- gijs
		- melk  



als menu, snappie

kijk zo kan je oneindig doorgaan, dit is gewoon te genereren, pm me ff en ik laat je wel voorbeeldje zien van die manier
Kuch wes,
Hier op PHPhulp hebben we een community, we delen elkaar problemen, maar ook elkaar oplossingen. Vooral dat laatste moet je even goed in je op nemen. Als we van elkaars fouten leren, hoeven we volgende keer niet weer hetzelfde probleem te behandelen. Dus als je zo vriendelijk zou willen zijn je voorbeeld hier neer te zetten, desnoods in de vorm van een link, dan zou het helemaal fantastisch zijn!
willemjan, ik zal wel willen, maar die site waar ik op doel is van een klant, die site is nog in aanbouw en ik wil niet dat jan en alleman daarop gaat koekeloeren , vooral omdat hij nog niet foolproof is.

je weet zelf ook best dat ik wel een voorbeeld zou posten als ik kon, anders zou ik ook dat stuk voor janlul getypt hebben

<?php
function maak_menu($ID, $level) {
	$query_menu = mysql_query("SELECT * FROM menu WHERE parentID='$ID'");
		switch($level) {
		case 0:
		$class = " class=\"categorie\"";
		break;

		case 1:
		$class =" class=\"parent\"";
		break;
		
		case 2:
		$class =" class=\"child\"";
		break;
	}

	while ($record = mysql_fetch_array($query_menu)) {
		echo"<div".$class."><a href=\"#\">".$record['titel']."</a></div>\n";
		maak_menu($record['ID'], $level+1, $teller);
	}
}

echo"<div id=\"Layout-Vlak-Menu\">";
maak_menu('0',0);
echo"</div>";
?>


Tot dusver werkt het wel. Maar ik wil dat de child van een parent pas wordt weergegeven als ik op die parent klik. Wie kan me daarbij helpen?

Reageren