Probleme mit "active" Befehl mit css und php

Rudi96

Grünschnabel
Hey Leute,
hab ein kleinen/großes Problem mit css und php. Hoffe ihr könnt mir helfen.
Wenn ich dieses in html einbinde:
HTML:
<ul id="nav">
<li class="sub active">
<a href="#"> Test
</li>
</ul>

Code:
Dies ist dann die style css:
#nav .sub .active {
background-color: #000;
}

So das ganze funktioniert auch so weit, nur das diese Website einen größeren Umfang haben soll, habe ich die html datei in php eingebunden und das ganze dann mit dem php include Befehl in html eingebunden. Jetzt kann ich das ganze natürlich mit dem active befehl vergessen. Wie bekomme ich es jetzt hin, dass das ganze wieder funktioniert. Kann ich dieses irgendwie mit php wieder hinbekommen. Ich möchte aber immer noch, die einzelne nav in einer externen Datei.

Vielen Dank
 
Warum soll das nicht mehr funktionieren? Für den Client ist es nach wie vor eine Datei, die er bekommt. Alle includes passieren auf dem Server, also lange bevor der Client überhaupt auch nur ein Byte empfangen hat. Ich vermute eher, daß das Problem irgendwo in der Verbindung von HTML und CSS zu suchen ist. Prüfe doch erst einmal die korrekte Kodierung, in dem Schnipsel fehlt z.B. das schließende a und vereinfache das CSS. Wozu sub und active noch aufteilen?
 
Also das Funktioniert schon noch, nur z.B. ich habe 10 Seiten die alles auf diese Datei zugreifen. Jede Seite soll aber an einer anderen Stelle, den active Befehl bekommen, da ja alles in einer php Datei gespeichert ist, kann ich den active Befehl nur auf eine Seite einstellen. Ich möchte aber jeder Seite den active Befehl einzeln zuordnen und das Funktioniert dann nicht mehr.
 
Du könntest z.B. an den Link als GET Wert ein Kennzeichen für die aufgerufene Seite anhängen. Damit weißt du genau, welcher Menüpunkt ausgezeichnet werden soll. Oder du schreibst, wenn es alles einzelne Seiten sind, dieses Kennzeichen oben in den Kopf.
 
Ganz normal mit PHP. Du wirst ja wohl am Anfang einer Seite einen PHP Teil haben, in dem die Session gestartet wird, der Datenbankzugriff initialisiert wird usw. Da hinein schreibst du das Kennzeichen. Wenn es z.B. die Kontaktseite ist, könnte es so aussehen:
PHP:
$page = 'contact';
Und in der include Datei für das menü fragst du in jeder Menüzeile ab, ob das Seitenkennzeichen soundso lautet und gibst dann mit echo das active mit aus. Fertig.
 
Ist zwar schon eine Weile her, aber vielleicht brauchst du es noch. Wenn ich dich richtig verstanden habe geht es die um die Kennzeichnung der aktuellen seite.

Code navigation.php
PHP:
<?php
 $uri = $_SERVER['REQUEST_URI']; 
 $navigation = array (
                "/" => "Startseite",
                "/about.php" => "Über mich",
                "/impressum.php" => "Impressum",
              );  
echo " <ul>\n";
 
 foreach ( $navigation as $href => $linktext ) {
    if ( $uri == $href ) {
    echo '<li><strong>'.$linktext.'</strong></li>'."\n";
     } else {
   echo '<li><a href="'.$href.'">'.$linktext.'</a></li>'."\n";
 }
}

echo "</ul>";
?>

und im HTML wird die navigation.php mit
HTML:
<?php include('navigation.php');?>
aufgerufen.

edit: Sorry, hab ich übersehen, dass das Thema schon erledigt ist.
 
Zuletzt bearbeitet:
Zurück