【问题标题】:CSS/PHP: Change font color based on value retrieve from MySQLCSS/PHP:根据从 MySQL 检索的值更改字体颜色
【发布时间】:2019-12-12 16:08:06
【问题描述】:

我的代码有问题。目前,我在数据库中有一个名为“Book_status”的列。有 3 个条件,即 Pending、Approved 和 Reject。

我希望字体根据该条件在 PHP 中更改其颜色。 例如,Pending 会将字体更改为 Yellow,Approved 更改为 Green,Reject 更改为 Red。

以下是我当前的 PHP 代码:

echo "<tr>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['Requested_by'] . "</td>";                                              
        echo "<td>" . $row['Fac_ID'] . "</td>";
        echo "<td>" . $row['Room_Desc'] . "</td>";
        echo "<td>" . $row['Meeting_Description'] . "</td>";    
        echo "<td>" . $row['Book_Status'] . " </td>";      
        echo "<td><a type='button' class='btn btn-primary btn sm'href='view.php?id=". $row['id'] ."' title='Edit Booking' data-toggle='tooltip'>View</a></td>";
echo "</tr>";

【问题讨论】:

  • 到目前为止你尝试过什么?问题是什么?是您需要生成的 HTML,还是 PHP 代码?您可能比让其他人为您编写代码做得更好。

标签: php css


【解决方案1】:

这有点类似于this

但不是传递一个数字而是传递状态

function statusColor($status)
{
    if ($status == 'Pending')
        return 'is-pending';
    else if ($status == 'Approved')
        return = 'is-approved';
    else if ($status == 'Rejected')
        return = 'is-rejected';
}

对于html类似的东西

<tr class="<?=statusColor('Pending');?>">...</tr>

我总是使用类而不是内联 css

.is-pending {
  color: yellow;
}
.is-approved {
  color: green;
}
.is-rejected {
  color: red;
}

【讨论】:

    【解决方案2】:

    只需将一些 CSS 类命名为与状态值相同的名称,并将其作为样式分配给表格行

    <style>
        .pending td{color:yellow;}
        .approved td{color:green}
        .reject td{color:red}
    </style>
    

    然后,在 PHP/HTML 中:

        $class=strtolower( $row['Book_Status'] );
    
        echo "<tr class='$class'>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['Requested_by'] . "</td>";                                              
        echo "<td>" . $row['Fac_ID'] . "</td>";
        echo "<td>" . $row['Room_Desc'] . "</td>";
        echo "<td>" . $row['Meeting_Description'] . "</td>";    
        echo "<td>" . $row['Book_Status'] . " </td>";      
        echo "<td><a type='button' class='btn btn-primary btn sm'href='view.php?id=". $row['id'] ."' title='Edit Booking' data-toggle='tooltip'>View</a></td>";
        echo "</tr>";
    

    【讨论】:

      【解决方案3】:

      这会起作用

      <?php
      $status=$row['Book_Status'];
      if($status=="Approved")
      {
          $color="color:green";
      }
      else if($status=="Pending")
      {
          $color="color:yellow";
      }
      else 
      {
          $color="color:red";
      }
       echo "<table><tr><td></td><td></td><td></td><td></td><td></td><td style='$color'>".$status ."</td></tr></table>";  
      
      ?>
      

      【讨论】:

        【解决方案4】:

        使用ternary operator 有两种方法可以实现此目的。此方法将只允许您为 Book Status 表格单元格设置自定义颜色。您也可以在 tr 上使用它,通过将其应用于 &lt;tr&gt; 元素来设置整行的样式。

        1. 有条件地附加一个类:&lt;td class="&lt;?php echo is_rejected ? 'rejected' : is_pending ? 'pending' : 'approved'; ?&gt;"&gt;。然后用你想要的精确样式在 CSS 中编写这些类。

        1. 您可以使用上一步中描述的方法直接使用内联...style="color:red" 属性。

        来源: How to apply style classes to td classes?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-25
          • 2015-07-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多