Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2477 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Sélecteur CSS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sélecteur CSS

n°1732243
mr_p@tate
PSN: eLlixTam
Posté le 15-05-2008 à 15:26:47  profilanswer
 

Bonjour à tous,
 
Malgré le titre "sélecteur CSS" c'est dans du PHP que se pose mon problème.
Je souhaite faire ce qu'on appelle un sélecteur de CSS, c'est à dire que j'ai plusieurs feuilles de style css pour le design de mon site, et que par un bouton, on sélectionne (et non pas on change) le style voulu.
La différence est plutôt importante apparemment parce que je ne veux pas le faire à la volée. Le visiteur choisit sur la page index en cliquant sur un bouton le style CSS et le garde pour tout le site. S'il veut rechanger, il doit retourner sur la page index.
A noter que la page index n'a pas de style externe donc n'appelle pas les CSS externes. C'est seulement aux pages suivantes que le style externe est appelé.
 
Donc sur ma page index.php, j'ai mis cela :

Code :
  1. <?php
  2.       if(isset($_GET['design'])){
  3.          if($_GET['design']==1)
  4.          {
  5.             echo '<link href="css_original.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  6.          }
  7.          elseif($_GET['design']==2)
  8.          {
  9.             echo '<link href="css_fresh.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  10.          }
  11.          }
  12. ?>


 
 
Sur les 2 boutons de la page index (sélecteur) dans <body> :

Code :
  1. <a href="HTML_test/home.php?design=1">Original</a> - <a href="HTML_test/home.php?design=2">Fresh</a>


 
Sur mes autres pages dans <html>, pour récupérer la variable (et donc le CSS) et le charger :

Code :
  1. <link href=<?PHP echo "\"$design\""; ?> rel="stylesheet" media="screen" type="text/css" title="Design" />


 
Le problème, c'est qu'une fois sur les pages suivantes, aucun CSS n'est chargé. En fait, il récupère bien la valeur si ce que je lis est bon (1 ou 2) mais ne charge pas le css correspondant.
Je précise qu'en HTML/CSS, je me débrouille, mais en PHP, je débute, j'essaie de m'y mettre avec ce petit exercice justement après plusieurs tutos.
J'ai déjà fait une recherche sur le forum et le web, seulement, tous les switchers que je trouve sont sous forme de menu déroulant et avec cookie pour se souvenir de la sélection lors du retour de l'utilisateur. J'aimerais éviter les cookies du fait qu'une fois le visiteur parti, lorsqu'il revient il a de nouveau le choix. Je pensais pourvoir adapter la méthode mais apparemment non.
Du coup j'aurais aimé un coup de main si vous voyez ce qui cloche.
 
Merci.

Message cité 2 fois
Message édité par mr_p@tate le 16-05-2008 à 16:26:03

---------------
Il n'y a pas de mauvais drakkars ou de mauvais temps, il n'y a que des marins de merde. --//-- Topic ventes
mood
Publicité
Posté le 15-05-2008 à 15:26:47  profilanswer
 

n°1732247
Paulp
~, sweet ~
Posté le 15-05-2008 à 15:34:37  profilanswer
 

mr_p@tate a écrit :

Bonjour à tous,
 
Malgré le titre "sélecteur CSS" c'est dans du PHP que se pose mon problème.
Je souhaite faire ce qu'on appelle un sélecteur de CSS, c'est à dire que j'ai plusieurs feuilles de style css pour le design de mon site, et que par un bouton, on sélectionne (et non pas on change) le style voulu.
La différence est plutôt importante apparemment parce que je ne veux pas le faire à la volée. Le visiteur choisit sur la page index en cliquant sur un bouton le style CSS et le garde pour tout le site. S'il veut rechanger, il doit retourner sur la page index.
A noter que la page index n'a pas de style externe donc n'appelle pas les CSS externes. C'est seulement aux pages suivantes que le style externe est appelé.
 
Donc sur ma page index.php, avant <html> j'ai mis cela :

Code :
  1. <?php
  2.       if(isset($_GET['design'])){
  3.          if($_GET['design']==1)
  4.          {
  5.             echo '<link href="css_original.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  6.          }
  7.          elseif($_GET['design']==2)
  8.          {
  9.             echo '<link href="css_fresh.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  10.          }
  11.          }
  12. ?>


 
 
Sur les 2 boutons de la page index (sélecteur) dans <body> :

Code :
  1. <a href="HTML_test/home.php?design=1">Original</a> - <a href="HTML_test/home.php?design=2">Fresh</a>


 
Sur mes autres pages dans <html>, pour récupérer la variable (et donc le CSS) et le charger :

Code :
  1. <link href=<?PHP echo "\"$design\""; ?> rel="stylesheet" media="screen" type="text/css" title="Design" />


 
Le problème, c'est qu'une fois sur les pages suivantes, aucun CSS n'est chargé. En fait, il récupère bien la valeur si ce que je lis est bon (1 ou 2) mais ne charge pas le css correspondant.
Je précise qu'en HTML/CSS, je me débrouille, mais en PHP, je débute, j'essaie de m'y mettre avec ce petit exercice justement après plusieurs tutos.
J'ai déjà fait une recherche sur le forum et le web, seulement, tous les switchers que je trouve sont sous forme de menu déroulant et avec cookie pour se souvenir de la sélection lors du retour de l'utilisateur. J'aimerais éviter les cookies du fait qu'une fois le visiteur parti, lorsqu'il revient il a de nouveau le choix. Je pensais pourvoir adapter la méthode mais apparemment non.
Du coup j'aurais aimé un coup de main si vous voyez ce qui cloche.
 
Merci.


 

Code :
  1. <?php
  2.       if(isset($_GET['design'])){
  3.          if($_GET['design']==1 || (empty($_GET['design']) && $_SESSION['design']==1))
  4.          {
  5.             echo '<link href="css_original.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  6.             $_SESSION['design']=1;
  7.          }
  8.          elseif($_GET['design']==2|| (empty($_GET['design']) && $_SESSION['design']==2)
  9.          {
  10.             echo '<link href="css_fresh.css" rel="stylesheet" title="design" type="text/css" media="screen" />';
  11.             $_SESSION['design']=2;
  12.          }
  13.        }
  14. ?>


 
Un truc dans ce genre là devrait marcher, mais il manque la gestion du design par défaut

n°1732604
mr_p@tate
PSN: eLlixTam
Posté le 16-05-2008 à 10:56:42  profilanswer
 

Désolé de ne pas avoir répondu plus tôt, je faisias de la bidouille avec les session justement :D.
Alors pour la gestion du CSS par défaut, je n'en ai pas puisqu'il n'y en a pas. La page index a son CSS propre, et le visiteur est obligé de cliquer sur un des 2 boutons pour continuer sa visite. Et lors du clic, il passe à la page principal (acceuil on va dire) en même temps qu'il sélectionne le CSS, donc il est obligé d'en avoir un de toute façon.
 
Pour ton code, comme on utilise des sessions, il ne manque pas "session_start();" au début ?
 
Cela dit, toujours ce CSS qui ne se charge pas.
Lorsque j'arrive sur ma page suivante, j'ai ça en code source :

Code :
  1. <link rel="stylesheet" media="screen" type="text/css" title="design" href="1"/>


 
Le 1 correspond à la valeur de ma variable si on clique sur le bouton 1. Le truc c'est qu'à la place du 1, je voudrais le chemin du CSS. Je ne comprends pas pourquoi il charge 1 et non pas le chemin.


Message édité par mr_p@tate le 16-05-2008 à 11:11:07

---------------
Il n'y a pas de mauvais drakkars ou de mauvais temps, il n'y a que des marins de merde. --//-- Topic ventes
n°1732672
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-05-2008 à 13:12:50  profilanswer
 

J'ai rien compris à ton truc ... déjà pourquoi sur "index.php" tu fais un "echo <link etc..." AVANT <html> ?

 

Ensuite, il sort d'où ton $design ?


Message édité par Dj YeLL le 16-05-2008 à 13:13:23

---------------
Gamertag: CoteBlack YeLL
n°1732822
mr_p@tate
PSN: eLlixTam
Posté le 16-05-2008 à 16:32:37  profilanswer
 

ENf ait c'était avant parce que j'avais essayé les SESSION avant Paulp ne m'en parle déjà, et que pour les sessions, il fallait que ce soit avant les balises html si j'ai bien compris le tuto. Bref en tout cas maintenant, c'est DASN html mais ça ne marche pas quand même.
C'ets vrai qu'à y réfléchir, je ne vois pas pourquoi j'ai mis echo<...> finalement sur la page index.
 
En fait, je veux qu'en cliquant sur un bouton, le CSS correspondant se charge sur les pages suivantes, pas sur index. Le bouton servant aussi à "entrer" sur le site. Et je pensais créer une variable "design", avec une valeur (1 ou 2 en fonction du bouton), et récupérer cette valeur sur les pages suivantes pour charger le CSS correspondant.
 
Du coup mon $design je pensais que c'était $_GET['design'].
 
Je le répète, je débute en php, après avoir lus des tutos, je me suis lancé dans mon premier truc php sans filet. Apparemment, faut que je relise les tutos.
 
En tout cas merci pour les réponses.


---------------
Il n'y a pas de mauvais drakkars ou de mauvais temps, il n'y a que des marins de merde. --//-- Topic ventes
n°1732829
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-05-2008 à 16:48:06  profilanswer
 

Tu peux faire un truc dans le genre :

 

Dans ton index (sans oublier le session_start()) :

 
Code :
  1. <?php
  2. if(isset($_GET['design']))
  3.    $_SESSION['design'] = intval($_GET['design']);
  4. ?>
 

Dans toutes tes pages (toujours sans oublier le session_start()), dans <head></head> :

 
Code :
  1. <?php
  2. if(empty($_SESSION['design']))
  3.    $_SESSION['design'] = 1;
  4.  
  5. switch($_SESSION['design'])
  6. {
  7.    case 1:
  8.        // ta CSS 1
  9.    break;
  10.  
  11.    case 2:
  12.        // ta CSS 2
  13.    break;
  14.  
  15.    case 3:
  16.        // ta CSS 3
  17.    break;
  18.    
  19.    // etc...
  20.    default:
  21.        // ta CSS par défaut
  22.    break;
  23. }
  24. ?>


Message édité par Dj YeLL le 16-05-2008 à 16:49:12

---------------
Gamertag: CoteBlack YeLL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Sélecteur CSS

 

Sujets relatifs
Positionnement et hauteur variable en CSSCours Html(Css) +Vb.net +Sql server 2000 +++Tps
Faire apparaître du nouveau sur un clic en CSSGros pb d'insertion d'un IzzyMenu CSS dans html
[CSS] Style different pour chaque élément du menu [résolu][HTML/CSS] Créer de nouvelles balises, authorisé ?
[PHP / BDD] Ma gallerie photoFond opaque en CSS... Pb de hauteur
[Résolu][HTML/CSS] Selecteur d'elements pere-fils + tableCSS : selecteur inopérant ?
Plus de sujets relatifs à : Sélecteur CSS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR