Tableau : couleur du texte

Résolu/Fermé
Florence75 - 3 avril 2012 à 17:45
 ReDLoG - 4 avril 2012 à 20:52
Bonjour à tous,

Dans mon tableau, je recherche la solution pour changer la couleur de `etat_diag' en fonction de son contenu : si `etat_diag' == non alors `non' passe en rouge.

Merci pour les infos.

<?php
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo '<table bgcolor="#FFFFFF">'."\n";
        // première ligne on affiche les titres 
        echo '<tr>';
        echo '<td align="center" bgcolor="#669999"><b>Désignation</b></td>';
		echo '<td align="center" bgcolor="#669999"><b>Date de création</b></td>';
		echo '<td align="center" bgcolor="#669999"><b>Etat</b></td>';
		echo '<td align="center" bgcolor="#669999"><b>Date d\'échéance</b></td>';
		echo '</tr>'."\n";
    // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.    
    while($data = mysql_fetch_array($result)) {

// formatage de la date et de l'heure
	$objDate_crea = New DateTime($data["date_crea"]);
	$objDate_ech = New DateTime($data["date_echeance"]);

 
        echo '<tr>';
        echo '<td align="center" bgcolor="#CCCCCC"><a href="diagnostic_detail.php?id_diagnostic='.$data['id'].'">'.$data["designation_diag"].'</td>';
		echo '<td align="center" bgcolor="#CCCCCC">'.$date_crea = $objDate_crea->format('d/m/Y').'</td>';
		echo '<td align="center" bgcolor="#CCCCCC">'.$data["etat_diag"].'</td>';
		echo '<td align="center" bgcolor="#CCCCCC">'.$date_echeance = $objDate_ech->format('d/m/Y').'</td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo '';

// on libère le résultat
mysql_free_result($result);

?> 
A voir également:

4 réponses

Bonsoir,
Tu as répondu toi-même à ton interrogation avec ceci => si 'etat_diag' == non alors 'non' passe en rouge :
if($data['etat_diag'] == 'non') {
     echo 'bgcolor="#FF0000"';
} else {
     echo 'bgcolor="#CCCCCC"';
}
1
Merci ReDLoG

Je ne vois pas à quel endroit insérer dans mon script ta solution et c'est le texte (pas le fond) que je souhaite en rouge.

Merci de ton aide, je ne suis pas une pro du php (comme tu peux le voir...) ;-)
1
A toi d'apprendre où le placer, sinon tu seras condamnée à fréquenter les forums tel que celui-ci dès que tu aura la nécessité d'apporter une modification à ton ou tes scripts :
if($data['etat_diag'] == 'non') {
     echo '<span style="color: #FF0000;">'.$data["etat_diag"].'</span>';
} else {
     echo $data["etat_diag"];
}
0
ReDLoG,
Ok, message reçu, tu as raison...

Je me penche sur le problème demain soir et je reviendrai avec la solution. Merci encore et bonne soirée.
0
Bonjour à tous,
Voilà, j'ai résolu mon problème et ça fonctionne...
Merci encore à ReDLoG pour son aide.

ReDLoG il y avait une autre solution ?

echo '<tr>';
        echo '<td align="center" bgcolor="#CCCCCC"><a href="diagnostic_detail.php?id_diagnostic='.$data['id'].'">'.$data["designation_diag"].'</td>';
		echo '<td align="center" bgcolor="#CCCCCC">'.$date_crea = $objDate_crea->format('d/m/Y').'</td>';
		
if($data['etat_diag'] == 'non') {
        echo '<td align="center" bgcolor="#CCCCCC" style="color: #FF0000;"><strong>'.$data["etat_diag"].'</strong></td>';
} else {
        echo '<td align="center" bgcolor="#CCCCCC"><strong>'.$data["etat_diag"].'</strong></td>';
}

		echo '<td align="center" bgcolor="#CCCCCC">'.$date_echeance = $objDate_ech->format('d/m/Y').'</td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo '';
0
Des solutions il y en a, il suffit d'aller jusqu'au bout de la logique :
if($data['etat_diag'] == 'non') {
        echo '<td style="font-weight: bold; color: #FF0000; text-align: center; background-color: #CCCCCC;">'.$data["etat_diag"].'</td>';
} else {
        echo '<td style="font-weight: bold; text-align: center; background-color: #CCCCCC;">'.$data["etat_diag"].'</td>';
}

Ainsi la sémantique CSS est sauve... ;-)
0