Modifier les couleurs d'une ligne d'un enregistrement [Résolu/Fermé]

Signaler
Messages postés
133
Date d'inscription
vendredi 5 juin 2015
Statut
Membre
Dernière intervention
12 décembre 2020
-
Messages postés
133
Date d'inscription
vendredi 5 juin 2015
Statut
Membre
Dernière intervention
12 décembre 2020
-
Bonjour,

Pouvez-vous m'aider à modifier le contenu d'une ligne d'un enregistrement en fonction de son contenu? Je m'explique !
Dans la boîte de réception Gmail par exemple, les lignes correspondants aux messages lus et aux messages non lus ont des couleurs différentes. Comment faut-il procéder pour que l'affichage de ces lignes soit de couleur différente?

Merci de votre aide !

1 réponse

Messages postés
2377
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 juin 2021
446
Salut,

La solution simple pour modifier la couleurs d'une ligne html est d'appliquer une classe css spécifique sur ces lignes. Il suffira alors de définir la couleur de la ligne en css via la propriété background-color sur cette classe spécifique.

Comment sont affichées tes lignes dans ton document html ?
Si les lignes sont générées via PHP, on peut alors effectuer pour chaque ligne une vérification du contenu de celle-ci et appliquer la classe spécifique en conséquence.
Si tu veux plus de détails, peux tu nous montrer le code qui génère ta liste et définir selon quel contenu la ligne serait affichée en couleur ?

Bonne journée,
Messages postés
133
Date d'inscription
vendredi 5 juin 2015
Statut
Membre
Dernière intervention
12 décembre 2020

J'utilise PHP !

Le code est le suivant :

<?php do { ?><tr align="left">

<td height="48" align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NumDotation']; ?></span></td>
<td height="48" align="center"><span class="Style72"><?php echo $row_RsSelectResultat['NomAgent']; ?></span></td>
<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NumOrdinateur']; ?></span></td>
<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NomOrdinateur']; ?></span></td>
<td><span class="Style74"><?php echo $row_RsSelectResultat['Marque']; ?></span></td>
<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['Modèle']; ?></span></td>
<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['Jour']; ?></span></td>
</tr>

<?php } while ($row_RsSelectResultat = mysql_fetch_assoc($RsSelectResultat)); ?>
Messages postés
2377
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 juin 2021
446
Parfait, on peux donc appliquer la solution proposée :
<?php do { 
	if (condition) {
		$classLigne = 'couleur1';
	} else {
		$classLigne = '';
	}
?>
	<tr align="left"<?php echo $classLigne ? ' class="' . $classLigne . '"' : ''; ?>>
		<td height="48" align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NumDotation']; ?></span></td>
		<td height="48" align="center"><span class="Style72"><?php echo $row_RsSelectResultat['NomAgent']; ?></span></td>
		<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NumOrdinateur']; ?></span></td>
		<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['NomOrdinateur']; ?></span></td>
		<td><span class="Style74"><?php echo $row_RsSelectResultat['Marque']; ?></span></td>
		<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['Modèle']; ?></span></td>
		<td align="center"><span class="Style74"><?php echo $row_RsSelectResultat['Jour']; ?></span></td>
	</tr>
<?php } while ($row_RsSelectResultat = mysql_fetch_assoc($RsSelectResultat)); ?>


A chaque tour de boucle, on crée une variable $classLigne qu'on rempli avec le nom de la classe spécifique si notre condition est validée.
On affiche ensuite cette classe sur la balise tr de tableau si la classe est définie (donc toujours si la condition est validée).

Il faut alors ajouter un peu de css pour modifier la couleur des cellules du tableau en fonction de cette classe :
.couleur1 td {
    background-color: red;
}


Pour faire marcher ce code, tu dois remplacer le mot "condition" dans le if par ta propre condition d'affichage de couleur de la ligne, par exemple :
if ($row_RsSelectResultat['NomAgent'] == 'Toto') {
Messages postés
32938
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 555 >
Messages postés
2377
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 juin 2021

Bonjour,
En complément ...
Sachant qu'un IF peut être écrit en utilisan t'écriture ternaire
Ce if :
if (condition) {
   $classLigne = 'couleur1';
} else {
   $classLigne = '';
}


Devient plus simplement :
//variable = (condition) ? valeur si vrai : valeur si faux ;
$classLigne = condition  ?  'couleur1' : '' ;
Messages postés
133
Date d'inscription
vendredi 5 juin 2015
Statut
Membre
Dernière intervention
12 décembre 2020
>
Messages postés
2377
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 juin 2021

Merci ! Je fais des tests pour vérifier...