PHP changer couleur cellule en fonction data.

petit_blanc Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1 011
 
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