如果值是某个单词,我无法更改值的颜色,我正在使用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";
}
答案 0 :(得分:0)
您可以在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>";
答案 1 :(得分:0)
当你提出一个非常基本的问题时,我会给你一些复杂的答案,并附上一些额外的解释:
const strings = [
"x...x",
"xx...x",
"xx...",
"xx..xx",
"xxx...xxx",
"xxxx...xxxx",
];
let pattern = /^(x*)(x[^x]+x)(\1)$/;
strings.forEach((s) => {
let res = s.match(pattern);
if (res) {
console.log(s + " --> " + s.match(pattern)[2]);
} else {
console.log(s + " --> no match.");
}
});
我在这里做了一些事情:
I escaped the variable。你可以在颜色突出显示这个读取更容易。这并不总是需要,但IMO是一个很好的做法。使用颜色highligher可能会为您提供更好的指示,指出当您更多地习惯它时可能出现的错误。
我已添加a short else if(echo "<td class='".($rs->estado=='Em analise'?'highlight':'')."'>".$rs->estado." </td>";
)。这是一种简短的方法,允许简单的内联检查而不是更大的statement ? ifTrue : ifFalse
。如果你愿意的话,你可以做更长的时间,但你可能想要玩这个玩具。
答案 2 :(得分:0)
首先,你不应该用PHP回显这么多HTML,只需在两种语言之间切换即可。我在下面的代码中为您做到了这一点,它将允许HTML正确突出显示自己的语法,这样您就可以更轻松地嗅出错误。用PHP回显所有HTML并不是一个好主意,你应该只在必要时这样做,如果你必须这样做,你应该使用Heredocs或类似的。
接下来,您尝试做的事实上非常简单。只需使用ternary检查$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
文件中。