Die Hervorhebung einer Zelle, PHP eine bestimmte Farbe, die basierend auf MYSQL Wert
Ich habe drei Werte, die angezeigt werden können von einer Tabelle/Spalte in mysql, ROT, GRÜN, GELB für den Bereich "ProspectStatus"
Ist es trotzdem kann ich eine Zelle ändern Ihre Hintergrundfarbe basierend auf dem Wert?
z.B.
echo "<td>" . $row['ProspectStatus'] . "</td>";
PHP-Code:
$result = mysql_query("SELECT * FROM customerdetails");
//List the Columns for the Report
echo "<table border='1'>
<tr>
<th>CustomerID</th>
<th>Customer Name</th>
<th>Prospect Status</th>
<th>Address</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['CustomerID'] . "</td>";
echo "<td>" . $row['CustomerName'] . "</td>";
echo "<td>" . $row['ProspectStatus'] . "</td>"; //this is the field I want to show either RED, GREEN or YELLOW
echo "<td>" . $row['Address'] . "</td>";
echo "</tr>";
}
echo "</table>";
stackoverflow.com/questions/36716586/... kann jemand bitte helfen, wie lösen Sie obiges problem ?
InformationsquelleAutor | 2013-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies mit diesem:
Den Wert des status können abhängig von der Farbe. Ich gehe davon aus, dass
val1
,val2
undval3
sind die Werte für die 3 Farben.Jup das war es - vielen Dank Christian
Froh, dass es hilft. Und Sie können die Farben ändern, die in html-codes wie rot = #FF0000, gelb = #FFFF00 und grün = #00FF00. Sie können dies akzeptieren, da eine Antwort obwohl. Ich werde Bearbeiten diese für Sie.
Sie hatten hier die Möglichkeit, die Adresse Armen-Codierungsverfahren verwendet, die ein Neuling und statt Sie geschrieben, eine schlampige Lösung wie diese. Traurig.
Es ist sinnlos zu behaupten, mit solchen coding-Konventionen. Dennoch habe ich die Frage beantworten.
InformationsquelleAutor Christian Mark
Erstellen Sie eine
class
von der Farbe, die Sie möchten, dass Zelle und stellen Sie dann eineif
- Anweisung prüft den Wert. Je nach dem Wert, echo, dassclass
.InformationsquelleAutor aug
ja, Sie können es hinzufügen, um Sie Tabellendaten-Tags wie unten
Der folgende code funktioniert:
InformationsquelleAutor liyakat
oder eine if-Anweisung prüfen, welche Farbe || Anzeige der echo
Funktionieren sollte.
InformationsquelleAutor Tredged
Da Sie sagten, Sie möchten, ändern Sie die Farbe nur eine bestimmte Zelle, das sollte den trick tun:
InformationsquelleAutor kevinm
Erste, verwenden Sie CSS für diese, nicht unordentlich in-line-style-Definitionen
Den meisten wartbar option wäre wahrscheinlich trennen Sie die Farb-codes selbst aus der Sicht der Logik, also im CSS, erstellen Sie einige neue Klassen:
Dann in der Schleife einfach machen (Sie brauchen nicht die echo-Anweisungen, etwas außerhalb von
<?
und?>
- tags werden geparst als HTML anstatt PHP):Diese Weise, wenn
ProspectStatus
ist 'fertig', hat die Zelle einen grünen hintergrund, wenn es "funktioniert", wird es einen gelben hintergrund hat, und wenn es aufgehört haben wird es mit einem roten hintergrund.Wenn ProspectStatus ist eine Reihe, oder sonst nicht diese einfache
Sagen wir mal
ProspectStatus
nichtdone
,working
undstopped
oder ähnliche einfache Werte, und stattdessen ist es eine Reihe, für diese können Sie eine einfache verschachtelte ternäre operator, um die Farbe, die Sie wollen, anstatt<tr class='<?= $row['ProspectStatus']; ?>'>
:Mit diesem one-liner, wenn
ProspectStatus
ist größer als 80, das Feld wird grün, wenn Sie zwischen 40 und 80 wird es gelb und wenn es unter 40 wird es rot sein.Hinweis:
mysql_
Funktionen sind VERALTETMithilfe der
mysql_
Funktionen, laufen Sie Gefahr, Ihr Programm nicht in zukünftigen Versionen von PHP, wie diese Funktionen wurden offiziell deprecated (veraltet 5.5.Dem neuen empfohlenen Weg, um Ihre Abfrage:
Hoffe, das hilft.
ProspectStatus
, Dann müssen Sie erstellen Sie eine neue CSS-Klasse? Gleiche Wartbarkeit Problem in der Erwägung, dass Sie es tun können inline. Vielen Dank für Ihre Konstruktive Kritik.Wie ist es das gleiche Wartbarkeit Problem? In der realen Welt-Programmierung, Ansichten ändern sich viel häufiger als die business-Logik. Wenn er mit den gleichen Daten (oder ein anderes Stück von Daten, mit rot/gelb/grün hintergrund) kann er wieder die
red
,green
undyellow
Klassen und wenn er will, zu ändern, anzuzeigen Logik, die er nur hat, um es zu ändern in einem Ort.Sehr gut gesagt.:)
Ich habe ähnliche Dinge in der Produktion code, ich Neige dazu, verwenden Sie eine verschachtelte ternäre inline-zu entscheiden, welche Klasse zeigt, wie das, was ich unter " Wenn XYZ ist eine Reihe...'
InformationsquelleAutor Glitch Desire