Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „PHP Styleswitch Bug (?)“

M

Marotzke

Guest

Hallo mal wieder!

Ich habe nach einem Tutorial - dürfte auch von hier sein, glaub ich (jedoch ist meine Variante ziemlich eigen modifiziert), einen PHP Stylesheet-Wechsler gebastelt. Der auch soweit grundlegend funktioniert. Jetzt zu meinem Problem:

Testet am vielleicht mal selbst, am besten mit Firefox/Opera:


Das Problem ist, dass er die zwei Styles genau vertauscht - "default", das ist der Style den ich gemacht habe. Der andere Style "new" ist einfach eine leere Datei (war bisher zu faul, reicht ja für Testzwecke). Wenn ich aber "default" im Fenster anwähle und den Button drücke, nimmt er einfach den anderen Stil. Ein weiteres Problem taucht ab und zu auf, wenn man dann in der Navigation rumfährt, dass er trotzdem wieder den Style wechselt.

Codeschnipsel:
----------------------------------------

(Das steht über dem HTML-Tag so ziemlich als erstes in der Datei)
PHP:
	/* Select stylesheet */
	if( $_POST['buttonklick'] )
	{
		$chosenstyle = $_POST['selectstyle'];
		setcookie("ssource_stylesheet", $chosenstyle);
	}

(Das steht im Head-Bereich, da wo die Styles hingehören)
PHP:
	<?php /* Static and global stylesheets */ echo '
	<!-- Stylesheets -->
	<link rel="stylesheet" type="text/css" media="screen" href="css/global_stylesheet.css" />

	/* User selected stylesheets */	
	if( !isset($_COOKIE['ssource_stylesheet']) ){ $style = "default"; }
	else{ $style = $_COOKIE['ssource_stylesheet']; }
	echo '
	<link rel="stylesheet" type="text/css" media="screen" href="css/'.$style.'_form_screen.css" />
	<link rel="stylesheet" type="text/css" media="screen" href="css/'.$style.'_style_screen.css" />'; 
	?>

(Das steht im Body-Bereich im zugehörigen Div -Navigation)
HTML:
<form action="" method="post">
	<div>
		<!-- Dropdownmenu for style selection -->
		<select name="selectstyle">
			<option value="default">Style (Default)</option>
			<option value="new">Style (New)</option>
		</select>
	</div>
	<div>
		<!-- Button for confirming the selection -->
		<input value="Confirm Style" type="submit" name="buttonklick" />
	</div>
</form>


----------------------------------------

Ich habe schon so einiges versucht (z.B. den Startstyle einfach auf "new" zu setzen - das ignoriert er aber völlig), aber nichts hat auch nur ansatzweise geklappt.

Was noch erwähnenswert ist:
In dem Tutorial hiessen die Dateien "1.css", "2.css", "3.css" - so kann ich meine natürlich nicht nennen; vor allem weil ich immer 2 pro Style brauche. Könnte der Fehler darin liegen, dass die Variable mit dem Text nicht klarkommt?

Eingeschobener Edit 1:
Wenn ich mir den Quellcode meiner Seite mal angucken, scheint der PHP-Code jedoch richtig konvertiert worden zu sein - die Dateinamen der CSS-Stile sind korrekt.

Eingeschobener Edit 2:
Der Einfachheit halber habe ich mal hier für die Codevorschau alle CSS-ID's und Klassen rausgenommen, die sind ja eh nur für die Optik da.

----------------------------------------

Falls jemand eine Idee hat, wie ich das fixen kann, wäre ich sehr dankbar.
Was dann noch toll wäre, wenn ich dem Dropdown-Feld sagen könnte, dass er nach Wahl eines Stylesheets auch den jeweiligen Namen als aktives Feld zeigen soll (bei C++ geht das beispielsweise sehr gut und einfach, aber wer wird denn Äpfel mit Birnen vergleichen wollen...)?



Danke schonmal im Vorraus :)
 
Zuletzt bearbeitet von einem Moderator:
M

Marotzke

Guest

AW: PHP Styleswitch Bug (?)

Hat siche erledigt - hab über Google einen Besseren gefunden, der auch wesentlich einfacher und kürzer ist, und auf Anhieb funktionierte:



Aber mal schauen ob das dem Validator auch gefällt.
(Edit: Tut es, nach ein paar kleinen aber wichtigen Modifikationen, einwandfrei).


Nunja. Thema hat sich hiermit erledigt, bin jetzt glücklich :-D
 
Zuletzt bearbeitet von einem Moderator:

Michael_Barsch

Noch nicht viel geschrieben

AW: PHP Styleswitch Bug (?)

Ich hätte einen Style Switcher nicht über PHP gelöst,
über Javascript ist es viel simpler (ob man über Java auch cookies abfragen kann weiß ich jetzt Leider nicht)

<link id="stylesheet_id" rel="stylesheet" href="styles1.css">
<script type="text/javascript">
function style_wechsle_dich_nun () {
document.getElementById("stylesheet_id").href = "styles2.css";
}
</script>
<a href="javascript:style_wechsle_dich_nun ();">wechsle dich</a>

ein anderer Vorteil gegenüber PHP ist, das die Seite nicht neugeladen werden muss.
Sowas erfreut den User immer :)
 

CIX88

Aktives Mitglied

AW: PHP Styleswitch Bug (?)

Ich würde das nicht über Javascript lösen, soll ja User geben die sowas nicht aktiv haben und dann geht die Lösung nicht mehr.
Ich nenne sowas Benutzerfreundlichkeit :)
Vielleicht ein Argument über den man nachdenken könnte.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben