css klickmenü mit link bei klick

Wie hast du denn das Menü vorliegen? Ist die Quelle dafür momentan der HTML-Quelltext selbst oder dient eine DB im Hintergrund zum Befüllen des Menüs?

Ein kleiner Denkanstoß:
PHP:
// In einem View Helper o. Ä.
interface Menu {
  public function getSubMenus();
}

// 'implements' und 'extends' funktionieren nicht
// PHP != Java... Muss jetzt aber etwas anderes erledigen.
interface MenuItem implements Menu {
  public function getMenuitems();
  public function isItemOf(Menu menu);
}


// View
$activeMenuItem = /* ... */;

foreach ($menu => $submenu) {
  if ($activeMenuItem->isItemOf($submenu)) {
    /* ausklappen */
  }
  else {
    /* nicht ausklappen */
  }
}
 
Vielen Dank für eure Mühe.
@SpiceLab
PHP Multi Level Menu ist jetzt nicht so das richtige.
@djheke
Danke für den Link, interessanter Ansatz, beim lesen bin ich darauf gekommen das ich doch etwas ähnliches auch mal umgesetzt habe.
Damals hatte ich die Werte von "action" dafür "missbraucht". Mal sehen ob ich das wiederfinde...
@ComFreek
Schaue ich mir auf jeden Fall an.
Quelle ist eine Liste in HTML, die Seiten includiere ich mit Switch - Case (index.php?action=kapba)
 
OK, kein Problem.
Habe mir nun die Gipspferd-Variante umgestrickt und funktioniert einwandfrei. Für alle die es mal brauchen:

Dem Body-Tag in der Index per PHP eine Variable übergeben --> <body <?php echo $getid; ?>>
Über dem Body-Tag, am besten ganz oben auf der Seite, eine Abfrage der übergebenen Seitenparameter erstellen.

PHP:
if($_GET['action'] == 'testseite1' || $_GET['action'] == 'testseite2')
{
$getid = 'id="seite1"';
}elseif($_GET['action'] == 'testseite3' || $_GET['action'] == 'testseite4' || $_GET['action'] == 'testseite5')
{
$getid = 'id="seite2"';
}else{
$getid = "";
}

In der Variable getid speichere ich den kompletten String, da, wenn es zu einer Menüpunkt kein Untermenü gibt, sonst
im Body ein leeres id="" stehen würde.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück