Anfrage

son gohan

Erfahrenes Mitglied
Hallo,

Müsste dass nicht mit PHP machbar sein?
Auswahl des Style meiner Homepage sagen wir mal per Radio-Button.
Abfrage per PHP ob ein Style gewählt wurde, wenn nicht dann default.css per echo einbinden.

Ich will zu meiner Homepage zwei verschiedene Designs anbieten. Dazu habe zwei CSS Dateien erstellt die ich jetzt irgendwie wechseln lassen können muss vom Besucher aus.

Wozu das Rad jeden Tag neu erfinden es gibt ja normalerweise schon so viele fertige Scripts, aber wonach ich da suche finde ich einfach nicht.
 
Naja... ein Formular erstellen, dass via PHP_SELF auf sich selbst verweist und dann im Head des Scripts z.B.:

PHP:
if(!isset($_POST[styleauswahl])) {echo '<link rel="stylesheet" href="default.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style1"){echo '<link rel="stylesheet" href="style1.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style2"){echo '<link rel="stylesheet" href="style2.css" type="text/css">';}

Ungefähr so würd ich das versuchen...

MfG
Hans
 
Hallo,

@ Gumbo, klar hab da schon mal gesucht aber nicht gerade was richtiges gefunden. Aber mit deinem Suchwort kommt schon mehr zum Vorschein werde es mir nochmal in Ruhe anschauen ob da jetzt nicht was bei ist.
 
Hallo Feh,

also ich würde das ganze mit sessions lösen.
So hast du den vorteil dass das gewünschte Layout auf jeder nachfolgender eingesetzt wird.
Als erstes eine Session öffnen:
PHP:
<?php
	session_start();
	 if(isset($_POST['stil'])){
	 	$_SESSION['stil'] = $_POST['stil'];
	 }
	 elseif(!isset($_SESSION['stil'])){
	 	$_SESSION['stil']= 'Standart';
	 }
?>

nun im header das über Radiobuttons gewählte style dynamisch anzeigen:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="<?php echo $_SESSION['stil']?>.css" type="text/css" rel="stylesheet" />
<title>StyleSwitcher</title>
</head>

Das Formular sieht folgendermassen aus:
PHP:
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
  <input name="stil" type="radio" value="Standart" />
Standart Layout <br />
<input type="radio" name="stil" value="Bunte" /> 
Buntes Layout <br />
<input type="radio" name="stil" value="Druck" />
Druck Layout <p></p>
<input type="submit" name="Submit" value="Auswählen" class="button" />
</form>

Die werte der Radiobuttons und der Dateiname der CSS Datei sollten identisch sein

Der Komplette Code hier als zip

Hoffe du kannst das gebrauchen :)

Gruss Modo
 

Anhänge

hans_schmid hat gesagt.:
Naja... ein Formular erstellen, dass via PHP_SELF auf sich selbst verweist und dann im Head des Scripts z.B.:

PHP:
if(!isset($_POST[styleauswahl])) {echo '<link rel="stylesheet" href="default.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style1"){echo '<link rel="stylesheet" href="style1.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style2"){echo '<link rel="stylesheet" href="style2.css" type="text/css">';}

Ungefähr so würd ich das versuchen...

MfG
Hans
Das geht auch einfacher. ;)
Wenn Du, wie im Beispiel als Werte die Namen der CSS-Files angibst kannst Du mit folgendem Code arbeiten:
PHP:
if (!isset($_POST['styleauswahl']))
 {
  echo '<link rel="stylesheet" href="default.css" type="text/css">';
 }
else
 {
  echo '<link rel="stylesheet" href="'.$_POST['styleauswahl'].'.css" type="text/css">';
 }
Der Vorteil ist, dass Du diesen Code unabhaengig von der Anzahl der angebotenen Styles nutzen kannst.
Du musst halt nur die Auswahl erweitern, aber brauchst nichts am PHP-Code zu aendern damit weitere Styles aktiviert werden koennen.
 
Hallo,

neues Problem, ich kann jetzt zwar die Styles mit dem Styleswitcher ändern, aber eines der beiden Design welche man darüber auswählne kann benötigt das der IE in die Quirksmode geschaltet wird.

Ist es daher möglich irgendwie auch bei Auswahl eines Styles per Switcher eine XML Deklaration vor dem Doctype anzubringen?
 
Es kommt darauf an, wie der Style Switcher arbeitet. Ist es ein serverseitiger – beispielsweise mit PHP – sollte es kein Problem darstellen, neben der Angabe des zu verknüpfenden Style Sheets auch ein paar weitere Zeilen Quellcode auszugeben.
 
Zurück