IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Style en fonction de variables


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Points : 91
    Points
    91
    Par défaut [Tableaux] Style en fonction de variables
    Bonjour,

    voila je me demande comment faire pour mettre en couleur en fonds d'une cellule d'un tableau en fonction de la variable qu'il y a dans la cellule.

    voila mon code tout bête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    for ($i=0; $i<$nbligne; $i++)
    		{
     
    			$n = $i+1; 
    			$ligne = mysqli_fetch_assoc($result);
    			extract($ligne);
     
    			echo "		
    				<tr>\n
    		   	 	  <td colspan=\"4\">&nbsp;</td>\n
      				</tr>\n
     
    				<tr>\n
       			 	  <td colspan=\"2\">$Sous_Class_Risk_1</td>\n
        	 		  <td rowspan=\"2\">$Def_Risk</td>\n
        	  		  <td rowspan=\"2\">$Motiv_Inherent</td>\n
      				</tr>\n
      				<tr>\n 
     
        	  		  <td>$Cote_Risk_Inherent</td>\n
      			  <td>$Cote_Risk_Residuel</td>\n
      				</tr>\n";
    		}
     
    			echo '</table>';
    A la fin du tableau il y a $Cote_Risk_Inherent et $Cote_Risk_Residuel qui peuvent prendre chacun :
    TRÈS ÉLEVÉ
    ÉLEVÉ
    MOYEN
    FAIBLE

    Suivant la cote je veux que le fonds de la cellule soit en rouge pour très élevé, orange pour élevé, jaune pour moyen et bleu pour faible.
    Je me demande comment faire cela, la méthode qu'il faut employer.

    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Il faut attribuer le BGCOLOR adéquat au <TD> selon la valeur de ta/tes variable/s.
    Qu'est-ce qui te bloque *exactement* ?

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par Séb.
    Il faut attribuer le BGCOLOR adéquat au <TD> selon la valeur de ta/tes variable/s.
    Qu'est-ce qui te bloque *exactement* ?
    Ceci va alourdir ton code HTML et le rendre moins évolutif.
    Je te conseillerais plutôt de donner une classe à tes cellules td que tu nommes selon le niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td colspan="2" class="'.$Cote_Risk_Inherent.'">...</td>';
    et dans ton CSS tu définis 4 classe :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    .tres_eleve {
    background-color:#f00;
    }
    .eleve {
    background-color:#b00;
    }
     
    .moyen{
    background-color:#700;
    }
     
    .faible {
    background-color:#300;
    }
    PS : quand tu fais un echo, utilise les simples quotes et non les doubles (c'est plus rapide niveau exécution et ton code HTML à l'intérieur est plus lissible car tu n'as pas besoin d'échapper les doubles quotes des attributs

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Points : 91
    Points
    91
    Par défaut
    Bon finalement, j'ai utilisé un switch

    C'est un peu lourd mais bon ca marche.
    J'avais bien songé à ta solution avant mais le truc c'est que j'ai
    TRÈS ÉLEVÉ
    ÉLEVÉ...

    et ca, ca ne marche pas à cause des espaces, ...
    donc voila en attendant mieux mon petit switch est pas si pire

    merci pour vos aides et lumineuses idées

  5. #5
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par louroulou
    et ca, ca ne marche pas à cause des espaces, ...
    Si c'est que ça le problème c'est pas un problème.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par trotters213
    Si c'est que ça le problème c'est pas un problème.
    C'est gentil de me dire que ce n'est pas un problème pour toi, vraiment ca m'est d'une aide très précieuse, ta remarque est tout à fait pertinente...

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Un petit coup de strtr devrait résoudre le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function cssize($name) {
        return strtr(strtolower($name), ' àâãäåçèéêëìíîïòóôõöùúûüÿ', '_aaaaaceeeeiiiiooooouuuuy');
    }
     
    echo '<td colspan="2" class="'.cssize($Cote_Risk_Inherent).'">...</td>';
    (non testé)

    non ?

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par louroulou
    C'est gentil de me dire que ce n'est pas un problème pour toi, vraiment ca m'est d'une aide très précieuse, ta remarque est tout à fait pertinente...
    No comment.

    Pour compléter la fonction de julp tu peux essayer celle-ci qui prend en compte les majuscules également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function formatage_chaine($chaine)
    {
       $accent  ='ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ ,;:!§/.?$\'"';
       $noaccent='aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby____________';
       $chaine = strtr(trim($chaine),$accent,$noaccent);   
       return strtolower($chaine);
    }

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 199
    Points : 91
    Points
    91
    Par défaut
    Oki j'ai compris le principe, je l'essaye ce soir en rentrant,

    merci à touti pour votre aide je devrai M'en sortir je pense

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction et variables tableaux
    Par MyJero dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/10/2013, 14h40
  2. Réponses: 4
    Dernier message: 21/09/2008, 01h24
  3. Réponses: 9
    Dernier message: 24/01/2008, 11h56
  4. [Tableaux] Pb avec fonction qui retourne 2 variables
    Par cyberdevelopment dans le forum Langage
    Réponses: 6
    Dernier message: 12/07/2006, 14h19
  5. Réponses: 9
    Dernier message: 24/05/2005, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo