[英]Change color based on value of a variable
如果某個值是一個特定的單詞,我很難更改它的顏色,我正在使用PDO從數據庫中獲取數據,並將代碼粘貼到下面。
我想要的是..如果變量“ estado”是“ Em analise”,那么顏色應該是紅色。
$stmt = $conn->prepare("SELECT * FROM orcamento");
if ($stmt->execute()) {
echo "<div class='panel-body'>";
echo "<div class='table-responsive'>";
echo "<table class='table table-striped table-bordered table-hover'>";
echo "<thead>";
echo "<center>";
echo "<tr>";
echo "
<th># </th>
<th>Estado</th>";
echo "</tr>";
echo"</thead>";
echo "<br>";
while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) {
echo "<tr>";
echo "
<td>$rs->CodOrc </td>
<td>$rs->estado </td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "Error";
}
您可以在CSS中添加一個類:
.red { color: #f00; }
並添加<td>
標簽的class屬性:
$match = $rs->estado == 'Em analise' ;
echo "<tr>";
echo "<td>$rs->CodOrc </td>
<td".($match?' class="red"':'').">$rs->estado </td>";
echo "</tr>";
當您提出一個非常基本的問題時,我將給您一個復雜的答案,並提供一些額外的解釋:
echo "<td class='".($rs->estado=='Em analise'?'highlight':'')."'>".$rs->estado." </td>";
我在這里做了幾件事:
我逃脫了變量 。 您可以在突出顯示的顏色中看到此內容更容易閱讀。 並非總是需要這樣做,但IMO是一個好的做法。 使用高光色可能會更好地指示您何時習慣使用該錯誤。
我添加了一個簡短的else if ( statement ? ifTrue : ifFalse
)。 這是一個簡短的方法,它允許簡單的內聯檢查,而不是更大的if()else{}
。 如果願意,可以做更長的一個,但是您可能想以此來玩些玩具。
首先,您不應該在PHP中回顯太多HTML,只需在兩種語言之間切換即可。 我在下面的代碼中為您完成了此操作,它將允許HTML正確突出顯示其自身的語法,以便您可以更輕松地發現錯誤。 用PHP回顯所有HTML絕不是一個好主意,僅應在必要時這樣做,如果必須這樣做,則應使用Heredocs或類似文件。
接下來,您實際上想做的很簡單。 只需使用三元數檢查$rs->estado
是否等於所需的值,然后為該單元格提供類或樣式。
<?
$stmt = $conn->prepare("SELECT * FROM orcamento");
if ($stmt->execute()) {
?>
<div class='panel-body'>
<div class='table-responsive'>
<style>
.red {
color: red;
}
</style>
<table class='table table-striped table-bordered table-hover'>
<thead>
<center>
<tr>
<th># </th>
<th>Estado</th>";
</tr>
</thead>
<tbody>
<?php
while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) {
echo "<tr>";
echo "<td>{$rs->CodOrc} </td>";
echo "<td class='".($rs->estado == 'Em analise' ? "red" : "")."'>{$rs->estado} </td>";
echo "</tr>";
}
?>
</tbody>
</table>
<?php
} else {
echo "Error";
}
該解決方案的主要部分是三元組, ".($rs->estado == 'Em analise' ? 'red' : '')."
它基本上告訴PHP,如果$rs->estado
等於Em analise
,它將回顯單詞red
,否則返回一個空字符串 。
注意:我的答案中的樣式標簽可能實際上應該添加到.css
文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.