如果$ _GET是,则使行变黄

时间:2016-02-17 19:18:02

标签: php html

简介

当您单击编辑并提交表单时,我有一个系统,它将在URL中显示为带有ID的$ _GET(例如,请参阅GIF):

enter image description here

现在出现了什么问题?

我希望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>";
}

先谢谢,堆叠器。

4 个答案:

答案 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 ...>之前发生。