Modifier les couleurs d'une ligne d'un enregistrement

Résolu
jus2mandarine Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -  
jus2mandarine Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   527
 
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 226 Date d'inscription   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   527
 
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 38484 Date d'inscription   Statut Modérateur Dernière intervention   4 746 > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
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 226 Date d'inscription   Statut Membre Dernière intervention   1 > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ! Je fais des tests pour vérifier...
0