Navigation PHP

J

junic

Guest
Hallo zusammen

Ich habe eine Navigation gemacht mit PHP allerdings funktioniert das active nicht.

Weiss jemand rat?

<?php


foreach($config['navi'] as $nr => $navPunkt)
{

echo '<a href="'.$navPunkt['url'].'?n='.$nr.'">'.$navPunkt['txt'].'</a>';


if($navPunkt['sub'])
{
if($_GET['n'] == $nr)
{
foreach($navPunkt['sub'] as $unterNavPunkt)
{
echo '<a href="'.$unterNavPunkt['url'].'" style="color:#142d80">'.$unterNavPunkt['txt'].'</a>';
}
}
}
}

?>

junic
 
Was genau heißt denn "funktioniert das active nicht"? Und welche fehler kommen, falls welche kommen?
 
QUOTE (junic @ Fr 24.09.2010, 09:48) Ich habe eine Navigation gemacht mit PHP allerdings funktioniert das active nicht.

Weiss jemand rat?


PHP hat da auf garkeinen Fall eine Schuld


entscheident ist, was am Ende als HTML+style.css im Browser landet
was kommt dort an?
was müßte ankommen damit es funktioniert?
 
@AdMarkt: Fehler kommen keine, es wird nur nicht angezeigt. Eigentlich sollte es schwarz sein wenn es ausgewählt ist aber es ist weiss.

@800XE: Im HTMl habe ich folgendes geschrieben: <div id="navi"><?php include('files/inc/navi.php'); ?></div>

und im CSS:
#navi { float:left; width:150px; margin: 0; padding:5px 0 0 0; color:#fff; width:230px;}
#navi a { text-decoration:none; color:#fff; font-weight:900; text-align:right; }
#navi a:link,
#navi a:visited { display:block; height:15px; border-top:none; padding:5px 0px 0px 5px; margin:5px 0px 0px 0px; }
#navi a:hover { color:#142d80; }
#navi a:active { color:#000; }
 
Hallo junic,

:active ist eine CSS Pseudo-Klasse und ist solange aktiviert, wie die Maustaste gedrückt wird.

Hier zum nachlesen, was die CSS Pseudo-Klasse genau auslöst:
http://www.css4you.de/active.html

... du in deinem Fall suchst wohl eher eine Möglichkeit, den derzeit angewählten aktiven Menüpunkt anzuzeigen. Hier müsstest du jeweils mit PHP die entsprechende Klasse setzen
CODE
<a href="meinlink.htm" class="aktiver_link">testlink</a>



sprich: diese musst du auf dem entsprechenden Link als Attribut setzen.

Ansonsten bei solchen Problemen mit HTML/CSS ist es am besten, wenn du uns kurz einen Link zeigst, wo wir die Ausgabe anschauen können.

Grüsse,
Rico
 
Hallo Rico

Genau das habe ich auch probiert, allerdings waren dann alle aktiv. Habe die Klasse probiert hier einzusetzen.
echo '<a href="'.$navPunkt['url'].'?n='.$nr.'">'.$navPunkt['txt'].'</a>';
An den unterschiedlichen Stellen aber es waren dann immer alle aktiv.


Gruss junic
 
sorry aber ich kapier immer noch nicht was du eigentlich genau mit dem Code erreichen willst. Wenn ich mir den Code vom Eingangspost ansehen werden alle Links aus einer Tabelle abgefraget und wenn es unterpunkte gibt werden die darunter gesetzt.

An welcher Stelle kommt jetzt die Abfrage ob ein Link aktiv ist oder nicht? Oder soll nach einem klick auf einen hauptlink erst die Unterlinks angezeigt werden?
 
Die Abfrage kommt an gar keiner Stelle und das ist das Problem, ich weiss nicht wie ich es schreiben soll, dass der hauptlink aktiv ist, wenn die Seite geöffnet wird.
Ich dachte, dass kann ich mit CSS lösen, habe dann versucht eine Klasse in den PHP Code ein zubauen aber dann war alles aktiv. Es soll aber nur der Hauptlink aktiv sein auf der Seite wo man sich befindet.
 
Die Klasse ist dort auch nötig um die CSS-Eigenschaften entsprechend zu ändern, nur eben mit einer entsprechenden Bedingung versehen. Beispiel:

CODE <a href="<?php echo $linkziel; ?>"<?php if($_GET['n'] == $navPunkt['n']){?> class="aktiv"<?php } ?>><?php echo $linktitel; ?></a>


Welche Bedingung dort genau stehen muss, hängt vom Aufbau deiner Linkstruktur ab.
 
Zurück
Oben