CSS in PHP-switch-Navigation einbinden

rolo

Gesperrt
Hallo PHP-Freaks.

ihr seid aber auch alle fix. Da klickt man einmal zu früh auf Übernehmen und zwei Minuten später sind auch schon eure Antworten da. Andererseits ein gutes Gefühl zu wissen, dass mein Beitrag sofort gelesen wird ;).

Also: jetzt zu meinem Problem:

Ich habe ein Navigationsmenü auf folgende Weise realisiert:

PHP:
	<?php
	switch ($_GET['subID']) {

	   case 1 :
	   $mainTable = "inhalte.php";
	   break;
		
	   case 2 :
	   $mainTable = "autoren.php";
	   break;
			   
	   case 3 :
	   $mainTable = "leseprobe.php";
	   break;
			
	   case 4 :
	   $mainTable = "bestellen.php";
	   break;
			
	   case 5 :
	   $mainTable = "presse_buch.php";
	   break;
			
	   default :
	   $mainTable = "buch.php";
	   break;
			
	   }
                      ?>

Die Links zu den Nav-Unterpunkten sehen so aus:

PHP:
<a href="<?php echo $PHP_SELF."?subID=1"?>" target="_top">INHALTE</a>
<a href="<?php echo $PHP_SELF."?subID=2"?>" target="_top">AUTOREN</a>

Der Content ($mainTable) wird anschließend folgendermaßen inkludiert:

PHP:
<?php include ($mainTable); ?>

Meine große Frage ist nun: Wie kann ich einem angeklickten Nav-Unterpunkte einen eigenen CSS-Stil zuweisen? So dass sich also der Stil des jeweils aufgerufenen Unterpunktes dynamisch mitändert?

Vielen Dank schon mal für eure Hilfe.

rolo
 
Zuletzt bearbeitet:
Ich denke, es wäre nicht schlimm, wenn du nochmal _genau_ beschreiben würdest, was du meinst.

So'n Codefitzel bringt alleine relativ wenig.


EDIT:

Da war ich zu langsam. :-)
 
warum holste die CSS net einfach beim includen der anderen datein mit rein dat geht doch

PHP:
switch($vari) {
case "1": 
include ("cssfile");
include ("phpfile");
break;
case "2":
include ("cssfile");
include ("phpfile");
break; 
default : 
include ("cssfile");
include ("phpfile");
}

oder schreibts die CSS File beim ändern um indem de irgendwo ne Config anlegts oder so :D

GreetZ Acidone
 
Zuletzt bearbeitet:
Musst einfach nur deine verschiedenen CSS Stile in einer CSS-Datei oder im Header definieren, am besten du nennst sie autoren.php, inhalte.php etc. Nun brauchst du nur noch das $mainTable in den Link Tag zu echo'n
PHP:
<a href="..." class="<?=$mainTable?>">
 
@voodoo:
Das klingt gut, löst mein Problem aber leider noch nicht. Ich will einfach nur, dass der Link-Text (INHALTE, AUTOREN,...) anders aussieht als die anderen Linktexte, wenn man auf ihn geklickt hat.

Vielleicht lohnt es sich die Seite genauer anzusehen, auf der ich die PHP-Navigation eingebunden habe [ist übrigens mein allererster PHP-Versuch]:

www.forummedienpolitik.de/buch

Unter der Rubrik "Buch" sind die fünf Unterpunkte aufgelistet, denen ich CSS zuweisen will.

Unter der Rubrik "Kongress", die noch nicht mit PHP, sondern ganz statisch mit HTML realisiert ist, seht ihr, wie die Navigation bei den Buch-Unterpunkten aussehen sollte.

Ich hoffe, das ist nicht zu kompliziert für euch.

Gruß,

rolo
 
So, Leute. Vielen Dank nochmal für eure Anregungen. Ich habe mein Problem mit eurer Hilfe gelöst, finde die Lösung aber noch etwas zu aufwendig. Vielleicht habt ihr eine Idee, wie man das leichter realisieren könnte:

Hier nun das neue switch-case-Szenario:
PHP:
			<?php
			switch ($_GET['subID']) {
			
			   case 1 :
			   $mainTable = "inhalte.php";
			   $activeClass = "sub_selected";
			   $normalClass = "sub";
			   break;
			
			   case 2 :
			   $mainTable = "autoren.php";
			   $activeClass = "sub_selected";
			   $normalClass = "sub";
			   break;
			   
			   case 3 :
			   $mainTable = "leseprobe.php";
			   $activeClass = "sub_selected";
			   $normalClass = "sub";
			   break;
			
			   case 4 :
			   $mainTable = "bestellen.php";
			   $activeClass = "sub_selected";
			   $normalClass = "sub";
			   break;
			
			   case 5 :
			   $mainTable = "presse_buch.php";
			   $activeClass = "sub_selected";
			   $normalClass = "sub";
			   break;
			
			   default :
			   $mainTable = "buch.php";
			   break;
			
			   }
			?>

Die einzelnen Links sehen nun so aus:
PHP:
<a href="<?php echo $PHP_SELF."?subID=1"?>" target="_top"
<?php if ($subID==1) {echo "class=\"".$activeClass."\""; }
else {echo "class=\"".$normalClass."\"";} ?>>INHALTE</a>

Im <head> der Seite habe ich zwei CSS-Stile namens "a.sub_selected" und "a.sub" eingefügt.

Also: Kann man die Geschichte noch vereinfachen? Ich denke vor allem daran, eine Menüstruktur mit mehr als einer Sub-Ebene zu verwirklichen.

Bin gespannt auf eure Einfälle.

rolo
 
Ich glaub wir haben dich alle missverstanden - zumindest ich :>

Nochmal kurz zusammenfassen und dann weiter schauen:
Du möchtest dass, wenn der Cursor auf einen Link in der Navigation geht, sich die Farbe etc. des einzelnen Links ändert. Und das soll von Menüpunkt zu Menüpunkt ein anderen Stil sein ?!

Hier mal mein CSS-Code um die Farben eines Links dynamisch zu ändern:
Code:
a.navi:link {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #000000;
text-decoration: none;
}

a.navi:active {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #000000;
text-decoration: none;
}

a.navi:visited {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #000000;
text-decoration: none;
}

a.navi:bb:hover {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #434343;
text-decoration: none;
}

a.navi:visited:hover {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt;
color: #434343;
text-decoration: none;
}

Ist dann aber mehr ein CSS Problem ... denk ich if($wrong) $schlagen != ja; :D
Hier eine feine CSS Seite: http://www.css4you.de
 
Zuletzt bearbeitet:
Zurück