"Intelligentes Menü"?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
code
eintrag
fehler
forum
funktionieren
index
kombination
kompetente hilfe
logischer fehler
machen
parameter
rat
rubrik
treten
verschiedenen rubriken
vorliegen
waldorf
wiedermal
zweite rubrik
-
Ich habe ein Menü vorliegen, dass Einträge zu verschiedenen
Rubriken automatisch generiert - in Kombination mit MySql.
Macht man Einträge zu Rubriken, erscheint automatisch ein
neuer Eintrag in der Menüleiste mit dem Rubriken-Namen.
Funktioniert soweit alles. Sieht etwa so aus:
Übersicht
Erste Rubrik
Zweite Rubrik
Code lautet:
<? foreach($rubriken as $index => $menue) echo "<p><a href="?id=$index">$menue</a></p>"; ?>
Jetzt soll aber, sobald ein Menüeintrag ausgewählt ist, die
Verlinkung ausgeschaltet werden. Das soll mit einer If-Abfrage
gemacht werden: stimmt der Index-Wert des Menüeintrags mit dem
get-Parameter id oben in der Adresszeile überein (etwa ?id=1 für den
ersten Rubrik-Eintrag), soll kein
Link gesetzt werden.
Der Code lautet:
<? foreach($rubriken as $index => $menue) { if ($index == $id) echo "<p>$menue</p>"; else echo "<p><a href="?id=$index">$menue</a></p>"; }?>
So - sollte funktionieren, tut es aber nicht. Es wird munter
weiter verlinkt, auch wenn der Menüeintrag gewählt wurde.
Komischerweise ist jetzt allerdings beim "nullten" Menüeintrag -
nämlich "Übersicht" - permanent die Verlinkung weg.
("Übersicht" ist Array zu den Rubriken -
$rubriken = array("Übersicht") ;
Wo liegt da ein logischer Fehler?
Bitte um Rat.
Beitrag geändert: 19.9.2008 16:24:23 von waldorf -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hmm versuch mal vor $id ein (int)
ich hab den code getestet und bei mir tritt auch ohne (int) kein fehler auf !?
ist $id = $_GET['id']; !??!?
und noch ne frage ist bei den echo "<a href=" <<-- hier ein \\ davor !?
Beitrag geändert: 19.9.2008 19:49:37 von friscocount -
hmm versuch mal vor $id ein (int)
ich hab den code getestet und bei mir tritt auch ohne (int)
kein fehler auf !?
Ne, funktioniert nicht.
ist $id = $_GET['id']; !??!?
Ja.
und noch ne frage ist bei den echo
"<a href=" <<-- hier ein \ davor !?
Ja.
Wie gesagt, der Link wird auch dann angezeigt, wenn
ich auf den Menüeintrag geklickt habe.
-
Hmm weiß nicht ob das mit dem nichtfunktionieren zusammen hängt aber de müssteste noch die " entquoten
... also aus:
<? else echo "<p><a href="?id=$index">$menue</a></p>"; ?>
werde:
<? else echo "<p><a href=#"?id=$index#">$menue</a></p>"; ?>
PS: aus dem Doppelkreuz bitte noch Backslashes machen... das Forum entfernt die Backslashes wiedermal
Grüßle
Beitrag geändert: 19.9.2008 23:12:29 von scout -
<? foreach($rubriken as $index => $menue) { echo ($_GET['id']==$index)?'<p>' . $menue . '</p>':'<p><a href="?id=' . $index . '">' . $menue . '</a></p>'; }?>
Ungetestet, aber dreimal sauberer als dein Code.
Nebenbei sollte er eignetlich so funktionieren, sofern $_GET['id'] wirklich $index entspricht. -
@adrians:
Wenn ich in deinen Code jetzt auch noch einbinden will,
dass nicht nur die Verlinkung des gewählten Eintrags
aussetzt, sondern der Eintrag auch rot erscheint,
muss ich das dann so schreiben?
<? foreach($rubriken as $index => $menue) { echo ($_GET['id']==$index)?'<p style="color:red">' . $menue . '</p>':'<p><a href="?id=' . $index . '">' . $menue . '</a></p>'; }?>
Edit: Natürlich mit BACKSLASH vor und nach \"color:red\"
Funktioniert nämlich mit der Farbe nicht...
Beitrag geändert: 20.9.2008 9:44:00 von waldorf
Beitrag geändert: 20.9.2008 9:45:14 von waldorf
Beitrag geändert: 20.9.2008 9:46:52 von waldorf -
@adrians: Mit der farblichen Hervorhebung der markierten
Menüeinträge geht jetzt auch. Danke noch mal. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage