Укажите нового пользователя с другим цветом или символом или подсветкой div

Я хочу указать недавно добавленного пользователя через условное обозначение или уникальный цвет, например, когда кто-то нажимает на Сохранить и добавленный пользователь должен быть показан другим цветом или выделен при этом взгляде, а затем исчезнет после обновления, что-то вроде того, что переполнение стека делает в системе комментариев.

Это мой код index.php на этой странице я заполнил форму и после отправки этой формы я добавил пользователя в базу данных, а затем показал его в порядке убывания

    <form action="save.php" method="post">
<div class="text-center" id='input_tag'>
<input type="text" name="name" id= 'input'>
<input type="submit" name="submit" class="btn btn-dark  " id = "button" value="Save">
</div>
</form>
<div class="container">
<div class="row">

<div class="col-md-4">
<table width="100"  class="table" id = 'tb'>
<?php
$connect = mysqli_connect('localhost','root','root','user');
$query = "SELECT name from userdata order by id DESC";

$run = mysqli_query($connect,$query);


while($row = mysqli_fetch_array($run))
{

echo "<tr>";
echo "<td>".$row['name']."<td>";
echo "</tr>";

}



?>


</table>
</div>


</div>
</div>

Это save.php где пользователь добавляется в БД, а затем перенаправляется на index.php страница

$connect = mysqli_connect('localhost', 'root' ,'root' ,'user');

if($connect){
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$query = "INSERT INTO `userdata`(`name`) values ('$name')";

if(mysqli_query($connect,$query)){
header('location:index.php');

}
}

}
else{
echo "not connected";
}

0

Решение

Вы можете достичь этого с помощью простого CSS и JS.

Измените функцию заголовка в save.php на

header('location:index.php?added=1');

Добавить стиль CSS в index.php

<style type="text/css">
tr:last-of-type  {
transition: .7s background;
}
</style>

В конце index.php добавьте следующее

    <?php
if (isset($_GET['added'])){
print '<script type="text/javascript">

document.querySelector("tr:first-of-type").style.background = "red";
setTimeout(function() {document.querySelector("tr:first-of-type").style.background = unset"},2000);
</script>';

}

?>

Я предполагаю, что новый пользователь будет отображаться сначала.

0

Другие решения

Если вы хотите отобразить пользователя по-другому в первый раз, то вам понадобится
своего рода флаг, который говорит, был ли пользователь показан или нет.
Во время вставки пользователя установите для флага didShow значение false.
Когда вы показываете пользователя, отметьте флаг и, если false, покажите пользователю
с символом и установите флаг didShow в значение true.
Когда вы показываете пользователю, если флаг didShow имеет значение false, показывать
Пользователь без символа.

Добавить новый столбец с именем didShow в вашу базу данных. Установите для него значение по умолчанию 0 (false).

Измените запрос следующим образом:

$query = "SELECT id, name, didShow from userdata order by id DESC";

В цикле используйте другое форматирование и обновите строки, которые должны быть обновлены.

$run = mysqli_query($connect, $query);
$style = 'style="color:#ccc"';
while($row = mysqli_fetch_array($run))
{
echo "<tr>";
if ( $row['didShow'] == 0 ) {
echo "<td><span {$style}>".$row['name']."</span><td>";
$updateQuery = "UPDATE `userdata` SET didShow=1 WHERE id = {$row['id']}";
mysqli_query($connect, $updateQuery);
} else {
echo "<td>".$row['name']."<td>";
}
echo "</tr>";

}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector