Bonsoir,

Je viens de résoudre mon autre problème donc je post ici pour mon nouveau problème Smiley lol

Donc en fait ça y'est : j'ai mais deux feuilles de style qui sont prêtentà être utilisées mais je n'ai pas bien compris comment faire...
J'ai lu déjà plusieurs post à ce sujet sur le forum en effectuant une recherche mais rien qui ne puisse véritablement m'aider, désolé.

Je me suis rendu sur le tuto d'elmouskito pour apprendre à "switcher" les css mais j'ai dû faire une erreur quelque part puisque je n'arrive pas au résultat voulu.

Voici donc ce que j'ai fait :

- je créé un dossier "css" dedans je met deux dossiers "style1" et "style2", dans le "style1" je met ma feuille nommée "style.css" et dans "style2" une autre feuille du même nom "style.css"

- j'incorpore ce code dans ma page là où je veux voir apparaitre le menu de changement de style :
<div id="style_switcher">
	<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
		<fieldset>
			<legend>Choisissez un style de page</legend>
			<select name="style">
				<option value="un_style" selected="selected">Un style</option>
				<option value="un_autre_style">Un autre style</option>
				<option value="encore_un_autre_style">Encore un autre style</option>
			</select>
			<input type="submit" name="change_style" value="Changer le style" />
		</fieldset>
	</form>
</div>


- Je met ce code entre mes balises <head></head> au tout début :
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
	if(file_exists("./".$_POST['style']."/style.css"))
	{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite
		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'] ;
	}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'] ;
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "un_style" ;
}
?>


- Il me reste ce code à insérer (je ne savais pas où le mettre donc je l'ai mis dans le <body>) :

<?php
echo "		<style type=\"text/css\" media=\"screen\">\n" ;
echo "			@import url(".$css."/style.css) ;\n" ;
echo "		</style>\n" ;
?>	


Voilà je suppose que je me suis trompé dans l'implantation des codes voir même aussi dans les chemins des liens (je ne sais pas si ça a une importance mais mes css et mon index ne se situent pas à la racine du site vu que je fais des tests pour l'instant et que je l'héberge provisoirement sur mon compte)

Merci pour vos réponses et veuillez pardonnez mon ignorance mais je ne suis pas très fort en css et encore moins en php, de plus c'est mon premier "switch" de css.
Modifié le 15 Jan 2005 - 16:19
Je suis une buse Smiley lol en php mais si c'est l'appel de la feuille de style, je suppose que c'est dans le head qu'il faille placer:
<?php

echo "		<style type=\"text/css\" media=\"screen\">\n" ;

echo "			@import url(".$css."/style.css) ;\n" ;

echo "		</style>\n" ;

?>	
Il faut mettre tout le php au même endroit, au niveau du header, tout simplement (les balises style après le gros bout de code bien entendu).

Et vive php (c'est ça l'avenir du web aussi) Smiley ravi
Modifié le 12 Jan 2005 - 21:03
Ok merci je vais voir ça Smiley biggrin

Note : moi aussi je suis une buse Smiley lol En fait j'aimerais bien apprendre parceque je pense que c'est extrêmement utile mais en fait j'ai la flemme et j'ai peur que ce soit dur (et je sais pas par quoi commencer)
Nan je n'y arrive toujours pas, j'ai bien mis les 2 codes php entre les balises <head> mais ça ne fontcionne pas. Lorsque je choisis mon 2nd style cela me ramène au premier.

Pour info voici le 1er style en ligne :
1er style css

Et voici le second que je devrais obtenir normalement :
2nd style

Je vous mets aussi les liens vers les css :
1- css de la première page
css de la deuxième page

Je ne pense pas que mettre les liens vers mes css vois aident beaucoup mais bon sait-on jamais Smiley lol
C'est ton formulaire qui va pas, faut mettre les bonnes valeurs dans les attribut value

<select name="style">
	<option [#red]value="style1"[/#] selected="selected">Un style</option>
	<option [#red]value="style2"[/#]>Un autre style</option>
</select>


Je vais éditer le tuto pour expliquer plus clairement que le nom de chaque dossier doit correspondre à la valeur de chaque "value"

En fait c'était bien expliqué déjà Smiley lol
J'ai reformulé un peu la phrase au cas où.
Modifié le 12 Jan 2005 - 21:52
Nan mais ça j'y avais compris, pas tout de suite en fait mais au moment de mon dernier post ça donnait ceci :

			<select name="style">
				<option value="ww" selected="selected">L'ame du guerrier (red)</option>
				<option value="popsot">Les sables du temps (blue)</option>
				<option value="encore_un_autre_style">Encore un autre style</option>
			</select>


NB : le 3ème style ne sert à rien, je le supprimerais après.

Donc en fait ça me donne ceci pour mon arborescence du site :

/ (racine du site avec mes pages... de mon vrai site)
/template (dossier dans lequel je fais mes tests)
/template/images (dossier où je met mes images du template test)
/template/css (dossier où je met mes css du template test)
/template/css/ww/style.css (mon style 1)
/template/css/popsot/style.css (mon style 2)
/template/index2.php (page de test avec le style 1 par défaut)

Voilà, donc je pense qu'en remplaçant comme je l'ai fait les attributs "value" ça devrait normalement fonctionner donc le problème ne vient pas de là (ou alors j'ai pas compris ce que tu voulais me dire).

Merci déjà pour ta réponse.

PS : désolé pour le pseudo, j'avais pas vu que tu avais changé Smiley confus
C'est dans le chemin de l'url qu'il faudrat faire un truc là alors.

A priori vu ton arbo :

@import url([#red]template/css/[/#]".$css."/style.css)


Je déplace dans le salon général, ça concerne pas vraiment les CSS

Pour le pseudo, y a pas de mal, tu peux m'apeller ElMoustiko si ça te chante ^^ je répondrais quand même !

-edit-
Penses aussi à modifier ça

else

// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "un_style" ;
}


Et mettre ton style par défaut à la place de "un_style".
Modifié le 12 Jan 2005 - 22:09
Ca ne marche toujours pas mais je suis sûr que j'ai une erreur toute bête quelquepart donc je met quand même tout le code mon <head> :
<head>
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
	if(file_exists("./".$_POST['style']."/style.css"))
	{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite
		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'] ;
	}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'] ;
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "ww" ;
}
?>
<title>Largeur fixe 750, header/menu gauche/menu droite/contenu/footer.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php
echo "		<style type=\"text/css\" media=\"screen\">\n" ;
echo "			@import url(template/css/".$css."/style.css) ;\n" ;
echo "		</style>\n" ;
?>	
<link href="css/ww/style.css" rel="stylesheet" type="text/css" />
</head>


Et puis le code (x)html :
<div id="style_switcher">
	<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
		<fieldset>
			<legend>Choisissez un style de page</legend>
			<select name="style">
				<option value="ww" selected="selected">L'ame du guerrier (red)</option>
				<option value="popsot">Les sables du temps (blue)</option>
				<option value="encore_un_autre_style">Encore un autre style</option>
			</select>
			<input type="submit" name="change_style" value="Changer le style" />
		</fieldset>
	</form>
</div>


Merci de m'aider en tout cas Smiley biggrin

PS : désolé, apparemment je n'ai pas posté dans la bonne section du forum.
Bah oui mais là ça redirige pas sur la page où l'on est mais sur l'index ... pas très cool ça, le visiteur s'en trouve vite pommé.

bizar que ça marche pas le PHP_SELF Smiley ohwell
Essai pour voir.

action="<?php [#red]echo[/#] $_SERVER['PHP_SELF'] [#red];[/#] ?>"


Par ailleurs, tu n'utilises peut être pas les bonne "quotes" dans ton truc pour ce topic là
http://forum.alsacreations.com/topic.php?fid=4&tid=1326
[`PHP_SELF`] => ['PHP_SELF']
Modifié le 13 Jan 2005 - 13:38
désolé pour les petites erreurs j'ai bien cela dans mon code:

<?php echo $_SERVER[’PHP_SELF’] ; ?>


pour le ";" et "echo" qui manquent Smiley murf j'avais fais un copier/coller sur le code de "knight" (voir plus haut) en mettant ce code çà ne fonctionne pas sous Firefox!!!

donc j'ai mis index.php car je n'ai le formulaire du choix de presentation que sur ma page d'accueil . j'ai essayer avec: header("Location: HTTP_REFERER"); encor pire....
Modifié le 13 Jan 2005 - 18:45
Ca ne marche toujours pas Olivier.

Edit : je vais tenté la méthode de dentnoir (j'ai essayer mais en fait je me suis trompé...)
Modifié le 13 Jan 2005 - 19:23
Bon je n'ai toujours pas réussi mais je pense qu'il faudrait que je reprenne carrément tout à zéro. Mais bon là de toute façon ce n'était pas important c'était juste pour dire de savoir faire, je réessaierais quand j'aurais plus de temps et l'envie Smiley lol

En tout cas je vous remercies quand même tous Smiley biggrin

@+