Menü-Erstellung - Problem mit Verzweigung/Variablen
Wilas
- php
Hello!
Ich erstelle ein Menü, dessen Code von PHP generiert wird.
Am Anfang habe ich:
<?php
$activeMenuItem == 'projekt';
function menu1($menuItem,$menuItemText) {
if ($menuItem == $activeMenuItem) {
echo "<tr><td class=menuOn>$menuItemText</td></tr>";
} else {
echo "<tr><td class=menu><a href=$menuItem.php>$menuItemText</a></td></tr>";
}
?>
An geeigneter Stelle im Code habe ich dann zB.:
<?php
menu1('unternehmen','Das Unternehmen');
menu1('projekt','Das Projekt');
menu1('modellierung','Die Modellierung');
?>
Funktioniert alles, außer:
Der Punkt "Projekt" wird nicht als aktiv genommen. Irgendetwas klappt bei der IfElse Verzweigung oder bei den Variablen nicht, aber was??
Vielen Dank im voraus für Eure Hilfe!
Grüße aus Wien
Wilas
Ich habe mir nich mal die hälfte durchgelesen aber du musst auf jeden Fall in die Funktion menu1 ein "global $activeMenuItem;" einfügen.
Mal sehen obs dann geht.
Gruß
Hanno
Holladiewaldfee,
$activeMenuItem == 'projekt';
function menu1($menuItem,$menuItemText) {
if ($menuItem == $activeMenuItem) {
Du kannst nicht in einer Funktion auf Variablen zugreifen, die außerhalb von dieser definiert wurden.
Verwende $GLOBALS['activeMenuItem'] oder
global $activeMenuItem;
Der Punkt "Projekt" wird nicht als aktiv genommen. Irgendetwas klappt bei der IfElse Verzweigung oder bei den Variablen nicht, aber was??
In so einem Fall solltest Du Dir immer die abgefragten Variablen ausgeben lassen und schauen, was drin steht. Dann kommst Du relativ schnell selber auf den Trichter, wo der Fehler ist.
Ciao,
Harry
Hallo,
$activeMenuItem == 'projekt';
Ist das ein Schreibfehler?
Das soll doch eine Zuweisung sein, oder?
$activeMenuItem = 'projekt';
Gruß,
Henning
Ha!
*Beides* war notwendig - "global" (Hinweis von Harry und Hanno) *und* natürlich Zuweisung statt "ist gleich" (Hinweis von Henning).
Vielen Dank für Eure Hilfe!
LG
Wilas