Перезагрузите страницу PHP с данными из mysql через определенный интервал - PullRequest
0 голосов
/ 31 января 2020

У меня есть страница php, которая находит активные события из mysql, просматривает результат и затем печатает детали. Он находит имя события, время начала события и общее количество присоединившихся пользователей, но данные страницы обновляются только при повторном открытии пользователем страницы, и я хочу, чтобы только столбец присоединенных пользователей обновлялся через некоторый интервал.

$result=fetchEventList();
if ($result->num_rows > 0) {

  while($row = $result->fetch_assoc()) {
  echo "<div class=\"row\">                                                                                                                                               
        <div class=\"td td1\">".$row["EventName"]."</div>                                                                                 
        <div class=\"td td2\">".$row["StartTime"]."</div>                                                                                                                                                                                                                                             
        <div class=\"td td3\">".$row["JoinedUsers"]."</div>";
}
}

Я искал и нашел много ответов, используя javascript и загружая только div, но это не работает для меня, я пытался

<script type = \"text/javascript\">                                                                                                                                         
setInterval(\"my_function();\", 5000);                                                                                                                                      
function my_function(){                                                                                                                                                     
$('.td3').load(location.href + ' #time');                                                                                                                               
}

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

Ответы [ 2 ]

1 голос
/ 31 января 2020

Вы не можете «перезагрузить» только div. Это пример, который обновит sh страницу для пользователя через 5 секунд:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
    setTimeout(function() {
      location.reload();
    }, 5000);
  </script>
</body>
</html>

Чтобы обновить содержимое только в div (без ссылки на страницу sh), вам потребуется AJAX вызов.

В JQuery вы должны использовать метод $.get() и установить содержимое с помощью $(divElem).html(result).

Что-то вроде:

// Set interval will repeat at a specified time interval
// in this case, every 5 seconds
setInterval(function () {
  // Our AJAX call to get the updated PHP results
  $.get('yourPage.php', function(result) {
    // Put the results in the div
    $(yourDiv).html(result);
  });
}, 5000);
0 голосов
/ 31 января 2020

это было связано с ajax и setInterval. сначала вы загружаете данные и отображаете их в div. выполните javascript, чтобы вызвать запрос ajax, чтобы получить данные, основанные на временном интервале.

, а затем отобразите его в свой div.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...