Modifier les couleurs d'une ligne d'un enregistrement

Résolu/Fermé
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023 - 24 oct. 2016 à 12:43
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023 - 24 oct. 2016 à 17:29
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 !
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
24 oct. 2016 à 15:00
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,
0
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023
24 oct. 2016 à 15:19
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)); ?>
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
24 oct. 2016 à 17:01
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') {
0
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
24 oct. 2016 à 17:27
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' : '' ;
0
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
24 oct. 2016 à 17:29
Merci ! Je fais des tests pour vérifier...
0