Mailinglisten-Archive |
Hallo Koray, > Da es einfacher ist, habe ich für die Navigation auf allen Seiten ein > Include auf ein einziges File gemacht. ist ja auch OK, wenn die Navigation immer gleich ist. Ich mache das auch so - wenn ich mit Files arbeite. > Normalerweise sollte bei einem klick auf ein link die link > farbe aktiv bei orange sein, so habe ich es im CSS > eingestellt. So ist es wahrscheinlich auch... aber nur für den kaum wahrnehmbaren Bruchteil einer Sekunde! In dem Moment, in dem du auf den Link klickst, wird er "aktiv". Nimm mal eine Farbe, die dir extrem auffällt. Dann klicke den Link an und schaue gleichzeitig auf die Website - du wirst ein Flackern sehen und erkennen, dass dein "aktiv" ganz kurz wirksam war. Aber was passiert dann, wenn man auf den link geklickt hat? Na, dann wird die Seite geladen, die du angeklickt hast.. und dann ist dein "aktiv" natürlich wieder futsch, weil ja eine neue Seite geladen worden ist. Das passiert, wenn man eine Website z.B. über eine einzige Datei -also z.B. eine "index.php"- lädt. Dann hat man z.B. die "index.php", in der sich der Kopf-, der Fuß- und der Navigationsbereich der Website befin- det. Der Rest -also der eigentliche Content- wird dann aus Files oder aus einer Datenbank nachgeladen. > Da es jedoch ein Include ist, versteht er es natürlich > nicht und die links verändern sich nicht wenn > sie aktiv sind. Mit Include hat das nichts zu tun und ein "Fehler", nach dem hier nun seit Stunden geforscht wird, liegt möglicherweise auch nicht vor. Es ist völlig egal, ob du deine Navigation direkt in die "index.php" einträgst oder sie -der einfacheren Wartung halber- in ein File schreibst, das du dann per "include" in die "index.php" einfügst. Wenn deine Website so aufgebaut ist, wie ich vermute, dann wird bei einem Klick auf einen solchen Navi-Link die "index.php" erneut auf- gerufen. Zwar wird diese z.B. mit neuen GET-Variablen aufgerufen, aber HTML und CSS erkennen das nicht und können das ja auch nicht erkennen. Sie sehen also keine "aktive" Seite, sondern eine neue Seite. Deshalb läuft dein "A:active" im Stylesheet ins Leere - wie gesagt, nicht wirklich, weil es ja für den Bruchteil einer Sekunde angezeigt wird. Aber das ist ja nicht der Effekt, den du haben möchtest. > Gibt es da einen kleinen Trick womit man das ganze schnell > lösen könnte? Ich habe mal eben auf einer älteren filebasierten Website nachge- sehen, in der ich das damals mit PHP umschifft habe. Bei jener Website ist es so, dass es eine "index.php" gibt, die den Hauptrahmen für die Website darstellt. Die Navigation wird dort auch per Include -über eine "navigation.inc.php"- in die "index.php" ein- gefügt. Hier ein leicht abgeändertes Codeschnipsel aus dieser Datei "navigation.inc.php": ************ <?php if ($navi[$i] == $_GET['page']) { echo "<font color='#ffffff'>"; echo $naviname[$i]; echo "</font>"; } else { ?> <a class="navigation" href="index.php?link=<?php echo $files[$i] ?>&page=<?php echo $navi[$i] ?>"> <?php echo $naviname[$i]; ?></a> <?php } ?> ************ Erläuterung: In der "navigation.inc.php" wird in einer FOR-Schleife ein Ver- zeichnis durchsucht und es werden dann die gefundenen Werte im Menü aufgelistet. Dem vorstehenden Schnippsel kannst du entnehmen, dass in dem Falle, dass der Name des Navigationspunktes identisch ist mit dem Namen der aufgerufenen Seite, also ($navi[$i] == $_GET['page']) ist, die erste Bedingung der "if- Anweisung" erfüllt ist. Dann wird dort kein Link angezeigt, sondern nur der Name des Menüpunktes - in weißer Schrift. Also, angenommen, du hast eine Website, auf der im Menü auch ein Punkt "Produkte" aufgeführt ist, dann wird dann, wenn der User diesen Punkt anklickt, die Seite "Produkte" aufgerufen. In der Navigation auf der aufgerufenen Seite "Produkte" erscheint dann das Wort "Produkte" in weißer Schrift -du kannst es ja in Orange- ändern. Das Wort "Produkte" ist nicht mehr anklickbar, weil das ja keinen Sinn macht - schließlich ist man dann ja schon auf dieser Seite. Also, in der Seite, die die Navigation enthält, vor der Ausgabe mittels PHP prüfen, welcher Menüpunkt angeklickt worden ist. Dann kann man den auch -auf der neu aufgerufenen "index.php" - enstpre- chend anders gestalten. Es ist schon spät. ;-) Wenn das nun alles zu neu und zu wirr für dich war, kannst du mir ja eine PM schicken. ;-) Grüße Toby
php::bar PHP Wiki - Listenarchive