簡體   English   中英

使用PHP更改4個結果的背景色

[英]Change background color for 4 results using php

使用PHP,我想更改TD的背景顏色,具體取決於其中的數字。 我知道這可以通過使用CSS來完成,只需將一個類添加到具有所需顏色的每個td中即可。 但是我希望這對我來說很簡單!

有沒有一種使用php的方法,我可以將數字從0更改為一個,並且在顯示時會自動更改背景顏色。

<table>
    <tbody>
        <tr><td>0</td></tr>
        <tr><td>1</td></tr>
        <tr><td>2</td></tr>
        <tr><td>3</td></tr>
    </tbody>
</table>

我認為代碼將讀取類似以下內容的內容,但我不知道如何編寫代碼。

if something equals 1 echo <td style="background:#f0f571;">1</td>
else if something equals 2 echo <td style="background: #ffc30f;">2</td>
else if something equals 3 echo <td style="background: #ff0000;">3</td>
else echo <td style="background: #498237;">0</td>

然后只需執行以下操作,然后我就可以將數字更改為0、1,2或3

<?php echo $something = 1;?>

着色絕對應該在CSS中完成,而不是在php中完成。 內聯樣式(幾乎)總是一個壞主意,因為您將樣式和標記混在一起。

我們了解您對可維護性的關注,因此建議您執行以下操作:

您現在在哪里做這樣的事情(我想):

echo "<tr><td>$myValue</td></tr>";

您可以輕松地執行以下操作:

echo "<tr><td data-content='$myValue'>$myValue</td></tr>";

在CSS中,您可以像這樣針對這些單元格:

td[data-content="1"] { color: red; }
td[data-content="2"] { color: green; }

假設所有這些都是在服務器端生成的,則可以創建一個支持函數,如下所示:

function getBackgroundHex($v)
{
    $hex = '#498237'; // Default

    switch ($v) {
        case 1:
            $hex = '#f0f571';
            break;
        case 2:
            $hex = '#ffc30f';
            break;
        case 3:
            $hex = '#ff0000';
            break;
    }
    return $hex;
}

以及呈現HTML的位置:

<table>
    <tbody>
<?php foreach ($value as $v) { ?>
        <tr><td style="background: <?php getBackgroundHex($v); ?>"><?php echo $v; ?></td></tr>
<?php } ?>
    </tbody>
</table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM