Bonjour, je souhaite proposer aux internautes 3 ou 4 choix de couleurs possibles pour mon site.
Je suppose quon ne fait autant de pages qu'il y a de couleurs possibles, car là c'est simple à faire mais par contre en terme de temps, bonjour...
Donc, c'est quoi la technique (en CSS ou autre) pour ce genre de travail ?

A +
Oui apparemment c'est ce que je cherche.
Mais question : peut-on le tester en local car j'ai fait comme le tuto (à voir) et je n'arrive même pas à afficher le style (normal) du départ.
A +
Bonsoir,

Renato a écrit :
Mais question : peut-on le tester en local car j'ai fait comme le tuto (à voir) et je n'arrive même pas à afficher le style (normal) du départ.


ça, je ne saurais pas vraiment te dire car je n'en ai encore jamais fais, je connaissais seulement les adresses où l'on pouvait trouver de bonnes méthodes pour en faire.

A ce propos, je viens de voir qu'on en parle aussi dans la FAQ du forum : clique ici

Voilà, en espérant que ça puisse te servir Smiley cligne
Modifié par touvert (21 Mar 2007 - 19:21)
Je ne m'en sors pas donc je vous mets le code :

Dans le body :

<div id="style_switcher">
	<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
		<fieldset>

			<legend>Choisissez un style de page</legend>
			<select name="style">
			
			<!--"normal" est un nom de dossier et c'est idem pour "jaune" et "vert"-->
			<option value="normal" selected="selected">Un style normal</option>
			<option value="jaune">Un style jaune</option>
			<option value="vert">Un style vert</option>
			
			</select>
			<input type="submit" name="change_style" value="Changer le style" />
		</fieldset>
	</form>

</div>


Au dessus du Doctype :

<?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 = "normal" ;
}
?>


Et dans l'en-tête :

<!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" />
<title>Document sans nom</title>

<?php
echo "		<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;
?>

</head>


Merci pour le coup de main.
upload/3601-switcher.gif
Dans chaque dossier j'ai un fichier : style.css

Et j'ai donc tout mon code dans une seule page (index.html)
Bonjour,

Tu utilises du PHP dans une page HTML ? Si c'est le cas, pas étonnant que ça ne marche pas.

Pour travailler avec PHP en local, il faut installer un serveur et installer PHP. Un logiciel comme EasyPHP peut te faciliter la vie en installant tout ça d'un coup (serveur Apache + PHP + MySQL... même si en l'occurrence tu n'as pas besoin de MySQL). Voir le site d'EasyPHP et la doc qui va probablement avec pour plus de renseignements.
renato a écrit :
Et j'ai donc tout mon code dans une seule page (index.html)


re,

en fait, si tu as du language php dans une page, l'extension de celle ci doit être en .php au lieu de .html, sans l'extension de fichier adéquate, ça ne peut pas fonctionner.

D'autres part, si je me souviens bien, tu disais que tu voulais essayer de voir le résultat sur ton disque dur, là encore, pour du php, il faut soit :

- Que les fichiers concernés soient mis en ligne sur un hébergeur qui gère le php car c'est une technologie qui ne s'exécute qu'à partir d'un serveur.

Pour te familiariser un peu plus avec cette technologie et pouvoir l'utiliser à bon escient, tu peux par exemple suivre le tutoriel du site du zero pour le php, c'est assez facile à suivre car on part de zero et en plus, il y a un QCM à la fin de chaque chapitre.

- Ou alors, si tu n'as pas d'autre solution actuellement, tu peux installer un serveur sur ton pc, ce qui fera en sorte qu'une petite partie de ton ordi réagisse comme un serveur d'hébergement et fera fonctionner correctement toutes tes pages en php, voici un tutoriel pour apprendre, là aussi, c'est pas très compliqué. Smiley cligne
Modifié par touvert (21 Mar 2007 - 21:22)
Bonjour, je récapitule :
Dans ma page "index.html" j'ai :
Dans l'en-tête :

<link href="normal/style.css" rel="stylesheet" type="text/css" />

Pour le style par défaut.
Ensuite dans le "body" j'ai :

<div id="style_switcher">
	<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
		<fieldset>

			<legend>Choisissez un style de page</legend>
			<select name="style">
			
			<!--"normal" est un nom de dossier et c'est idem pour "jaune" et "vert"-->
			<option value="normal" selected="selected">Un style normal</option>
			<option value="jaune">Un style jaune</option>
			<option value="vert">Un style vert</option>
			
			</select>
			<input type="submit" name="change_style" value="Changer le style" />
		</fieldset>
	</form>

</div>


Dans une autre page "switcher.php" j'ai au tout début de la page :

<?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 = "style" ;//tous mes fichiers .css portent le nom de "style.css" et chaque style est dans un dossier séparé
}
?>


Et dans la même page mais entre les balises <head> et </head> j'ai :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>

<?php
echo "		<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;
?>

</head>


Et ça ne fonctionne pas même en ligne, alors je dois faire une erreur mais si vous pouviez me donner un p'tit coup de main...

Merci.
renato a écrit :
Dans ma page "index.html" j'ai :


Bonjour Renato,

comme Florent et moi l'avons dis plus haut, un fichier contenant du code php et portant une extension en .html ne peut pas fonctionner, que ce soit en ligne ou sur ton disque dur, par exemple, pour le code qui suit :

<?php $_SERVER['PHP_SELF'] ?>


Si ce genre de code est présent dans un de tes fichiers .html, ça ne peut pas fonctionner, pour avoir une chance que ça fonctionne, il faut mettre l'extension en .php.

Un exemple pour que tu puisse mieux comprendre : "index.php" au lieu de "index.html".

Donc, change d'abord les extensions sur tous tes fichiers contenants du php et à ce moment là si ça ne fonctionne toujours pas, c'est là qu'il y aura quelqu'un qui pourra peut-être t'aider Smiley smile
Modifié par touvert (22 Mar 2007 - 10:12)