简介
当您单击编辑并提交表单时,我有一个系统,它将在URL中显示为带有ID的$ _GET(例如,请参阅GIF):
现在出现了什么问题?
我希望ROW已经改变(所以<tr>
)亮黄色,这样你就知道你编辑了什么,我试过这样做(参见下面的代码)但是没有做好这份工作。
也许你可以帮助我?我的大脑因为想出一个解决方案而受伤...
我在第5行添加了我的“解决方案”(但它不起作用。)
$changer = $_GET['id'];
echo "<table border='1' cellpadding='10'>";
echo "<tr><th>ID</th><th>Date</th><th>Message</th><th></th><th></th></tr>";
while ($row = $result->fetch_object()) {
echo "<tr>" . if (isset($_GET['id']) && $_GET['id'] == $changer) { echo ' class="yellow"'; };
echo "<td>" . $row->id . "</td>";
echo "<td>" . $row->firstname . "</td>";
echo "<td>" . $row->lastname . "</td>";
echo "<td><a href='records.php?id=" . $row->id . "'><img src='images/edit.png' alt='Edit' title='Edit update' /></a></td>";
echo "<td><a href='delete.php?id=" . $row->id . "'><img src='images/delete.png' alt='Delete' title='Delete update' /></a></td>";
echo "</tr>";
}
echo "<tr><td></td><td></td><td></td><td></td><td><a href='records.php'><img src='images/add.png' alt='Add' title='Add update' /></a></tr>";
echo "</table>";
}
先谢谢,堆叠器。
答案 0 :(得分:0)
这是因为您将class="yellow"
放在<tr>
之外。现在你有
<tr>class="yellow"
你应该做的是改变
echo "<tr>" . if (isset($_GET['id']) && $_GET['id'] == $changer) { echo ' class="yellow"'; };
to(在回声之外移动if
)
if (isset($_GET['id']) && $_GET['id'] == $changer) {
$str = "<tr".' class="yellow"'.">";
}
else {
$str = "<tr>";
}
echo $str;
或者,您可以使用ternary运算符
答案 1 :(得分:0)
你<tr class="yellow">...</tr>
失败了,你所做的是<tr>class="yellow"...</tr>
。
你也可以尝试自动将其置于CSS
像这样:
table tr{background:yellow;}
PHP:
echo '<tr>';
PHP code to execute inside <tr> tag.
echo '</tr>';
或示例可能如下所示:
echo '<tr' . if (isset($_GET["id"]) && $_GET["id"] == $changer) { echo ' class="yellow"> ... </tr>'; };
答案 2 :(得分:0)
使用$_GET['id'] == $changer
$_GET['id'] == $row->id
答案 3 :(得分:0)
第5行应为
echo "<tr" . ((isset($_GET['id']) && $changer == $row->id) ? ' class="yellow"' : "") . ">;
这是IF的短代码。另外,请记住,class属性必须在关闭tr标记开头<tr ...>
之前发生。