PHP changer couleur cellule en fonction data.

Fermé
petit_blanc Messages postés 9 Date d'inscription vendredi 8 avril 2011 Statut Membre Dernière intervention 18 avril 2011 - 8 avril 2011 à 10:23
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 8 avril 2011 à 10:59
Bonjour,

Je suis novice en programmation et surtout en PHP... J'aurais besoin d'un petit coup de main sivouplé.

En faite je voudrai que la couleur de fond des cellules varient en fonction des valeurs que je vais mettre dans mes cases.

Par exemple dans un menu de restaurant, si le menu "entrée" est :
EN ATTENTE (rouge)
EN COURS (orange)
PRET (jaune)
SERVI (vert)

C'est une histoire de condition je pense mais ça fait quelques heures que je bosse dessus et je n'arrive vmt pas....pourtant j'image que c'est pas compliqué....

Donc si vous pouvez me donnez un peu d'aide ça serait très sympa.

Voila un bout de mon code :
<?php
$id = $_POST['choix'];
$rqt = "SELECT * FROM commande_repas WHERE ref_com='". $id ."'";
$reponse = $mysql -> queryreturn($rqt);

while (($donnees = mysql_fetch_array($reponse))!==false):

echo "</td>";
echo "<td>";
echo "<center>";
echo $donnees['entree'];
echo "</center>";
?>

<center>
<select name="etatentree">
<option value="En Attente"> En Attente </option>
<option value="En cours"> En cours </option>
<option value="Pret"> Pret </option>
<option value="Servi"> Servi </option>
</select>
</center>



A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 avril 2011 à 10:59
Bonjour,

En effet, ce n'est pas très compliqué. Voici une solution :

<?php
$id = $_POST['choix'];
$rqt = "SELECT * FROM commande_repas WHERE ref_com='". $id ."'";
$reponse = $mysql -> queryreturn($rqt);
$couleur = "";

while (($donnees = mysql_fetch_array($reponse))!==false):
    switch ($donnees['entree']):
        case "En Attente": $couleur = 'background-color:red;'; break;
        case "En cours": $couleur = 'background-color:orange;'; break;
        case "Pret": $couleur = 'background-color:yellow;'; break;
        case "Servi": $couleur = 'background-color:green;'; break;
    endswitch;

    echo "</td>";
    echo "<td style='$couleur'>";
    echo "<center>";
    echo $donnees['entree'];
    echo "</center>";
?> 


Xavier

PS : je ne suis vraiment pas familier de la syntaxe alternative à base de « : » et de « endswitch », à vrai dire je ne savais même pas qu'elle existait... Mais apparemment d'après la doc de php.net (https://www.php.net/manual/en/control-structures.alternative-syntax.php pour les curieux) je suis obligé de l'appliquer pour le switch car le while est codé comme ça : j'espère donc ne pas avoir fait d'erreur là-dessus. Et comme je n'ai pas de serveur php sous la main, je ne peux pas vérifier...
0