Les couleurs dans un document PHP

alvanoto
Invité n'ayant pas de compte PHPfrance

31 déc. 2009, 17:10

Bonjour,

je souhaite visualiser les données transmises par un formulaire (choisir un élement parmi les élements présent sur un menu déroulant) sur une page PHP.
Selon l'élement choisi de ce menu déroulant (bonjour,aurevoir) une couleur devra être associée à un texte "jeDoisApparaîtreEnCouleur"

exemple: si l'élement choisi est "bonjour" la couleur de fond sera bleu
si l'élement choisi est "aurevoir" la couleur de fond sera rouge........

pour arriver à cela, je suis passée par un SWITCH à l'intérieur de la balise <style

Code : Tout sélectionner

<style type="text/css"> .tab_bg_red{background-color:red} .tab_bg_blue{background-color:blue} <?php $choix =$_POST['priority']; switch($choix){ case "bonjour":{ $tab_bg_color=tab_bg_red; break; } case "aurevoir":{ $tab_bg_color=tab_bg_blue; break; } } ?> </style>
puis un

Code : Tout sélectionner

<p class="tab_bg_color" >jeDoisApparaîtreEnCouleur</p>
mais ça ne marche pas (aucune couleur n'apparait).........je me dis qu'il ne faut pas le mettre dans la balise <style> mais just en dessous du <body> ou à l'intérieur de la balise <p> comme cela mais là auss, rien ne va :?

Code : Tout sélectionner

<p class=" [COLOR="DarkOrchid"]<?php $choix =$_POST['priority']; switch($choix){ case "bonjour":{ $tab_bg_color=tab_bg_red; break; } case "aurevoir":{ $tab_bg_color=tab_bg_blue; break; } echo $tab_bg_color; } ?>[/COLOR] "> jeDoisApparaîtreEnCouleur </p>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 janv. 2010, 23:00

Ton premier code est correct. Le plus simple est effectivement de définir tes classes css et d'identifier celle qui doit être utilisée, chose que tu fais déjà en stockant le nom dans ta variable $tab_bg_color.

Le problème, c'est qu'ensuite tu n'utilises pas ta variable php, mais une valeur en html. Ceci devrait mieux fonctionner :
<p class="<?php echo tab_bg_color; ?>" >jeDoisApparaîtreEnCouleur</p>

Ps : dans ton switch, il manque des apostrophes ou des guillemets autour de la chaine de caractère correspondant au nom de la classe à utiliser :
switch($choix){
       case "bonjour":{
           $tab_bg_color="tab_bg_red";
           break;
       }
      case "aurevoir":{
          $tab_bg_color="tab_bg_blue";
          break;
      }
}
Cela fonctionnerait également sans si les warning sont désactivés, mais c'est pas une bonne chose. En effet, sans les guillemets (ou apostrophes) cela fait référence à la constante tab_bg_red, qui n'est naturellement pas définie. PHP va donc considérer qu'au lieu de la constante qu'il ne trouve pas, il doit utiliser la chaine de caractère équivalente, mais c'est du travail en plus pour lui et pour la personne qui un jour va lire ton code et cherchera comme moi à quoi correspond ta constante ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...