Hi!
moin
Ich möchte auf meiner Seite mehrere Sytlesheets zur Wahl stellen. Dazu habe ich mir gedacht ein kleines Menu mit den zur Verfügung stehenden Stilen anzubieten. Wenn der Stil dann ausgewählt wird wird an die index.php der Wert der Variable $change_style weitergegeben, die dann wie folgt weiterverarbeitet wird:
if ( isset( $change_style ) ) {
$GLOBALS['style'] = $change_style;
}
wie wird die variable weitergegeben?
wenn über get, dann bitte $_GET["change_Style"]
<LINK rel="stylesheet" type="text/css" href="styles/<?php echo $GLOBALS['style'].".css"; ?>" />
Das klappt beim ersten Aufruf wunderbar (Bsp.: index.php?change_style=style1), alles wird gemäß dem entsprechenden Sytelsheet angezeigt.
Wenn ich dann aber in meiner Navigationsleiste auf einen beliebigen Link*** klicke geht der Wert der $GLOBALS-Variable verloren. Somit sind auch keine Formatierungsanweisungen mehr da.
selbstverständlich geht der wert verloren, du musst ihn natürlich wieder an die nächste file übergeben. nur wiel du in in dem Array $GLOBALS speicherst heisst das nicht das sie auch global ist.
Was mache ich falsch?
du musst zuerst nen default style festlegen.
dann recht weit oben in denem script oder ner function sowas in der art:
*snip*
$GLOBALS['style'] = (isset($_GET["change_Style"]) && !empty($_GET["change_style"])) ? $_GET["change_style"] : $GLOBALS["default_style"];
erklärung.
wenn die variable cange_style übergeben wird dann wird diese auch benutzt, wenn dem nicht so ist wird der default style geladen.
du musst, wenn du nicht willst das sich der style wieder in den default ändert, an jeden link immer folgendes anhängen:
<a href="meinlink.php?change_style=<?php echo $GLOBALS['style']?>
änder den name aber in style oder so, kommt besser.
Gruß,
Matthias
mfg analpha