Как обновить части страницы (инклуда или блока) по таймеру?

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

ajax.

Потому что инклюдов и файлов с РНР кодом не существует после выполнения запроса к серверу и получения результата (например, HTML).

1 лайк

Да. Такая информация у меня есть, но найти в интернете понятных примеров даже достаточных просто для разработки по моему случаю не удается. Можно чуть подробнее, как можно совместить PHP код и JS в случае моей конструкции (не знаю почему, но код отображается не полностью):

<a href="pch.php" class="bbb"><br>ВАЖНОЕ
				<span style="color: #9f0">
					<?php 
						$stmt = $mysqli->prepare("SELECT * FROM `s` WHERE `id`=? AND `li`=1") or die(mysqli_error($mysqli));	
						$stmt->bind_param('i', $userid);
						$stmt->execute();
						if($stmt->error)die('ОШИБКА ПОДКЛЮЧЕНИЯ: '.$stmt->error);
						$check_user = $stmt->get_result();
						$result = mysqli_fetch_assoc($check_user);
						if ($check_user->num_rows > 0 ) echo 'NEW';
					?>
				</span>
			</a>

Предполагалось использовать setInterval.

РНР должен вернуть обновленную часть (ну то есть если это “классический” РНР без фреймворков/ЧПУ, то просто отдельный файл, который выводит HTML как выше) и в JS сделать запрос (то есть просто имя этого файла), чтоб получить это, и после получения вывести куда надо.

Типа такого:

    <div id="content">
      <img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif"/>
    </div>

    <script>
      setInterval(() => {
        fetch('/get_content.php')
          .then(response => response.text())
          .then(html => {
            document.querySelector('#content').innerHTML = html;
          });
      }, 3000);
    </script>

get_content.php:

<h2>Hello <?= rand(100, 999) ?></h2>

https://replit.com/@AlexP11223/PhpAjax#index.php

Вместо fetch может быть удобнее использовать библиотеку типа Axios, или jQuery.


потому что при вставке кода на форумы надо нажимать кнопку Код.

2 лайка

Рабоооотаееет!) Сасибо). А на кнопку “Код” я нажимаю. Может имеет значение до или после ввода текста ее нажимать.)

Ну оно вокруг текста должно добавиться, как теги HTML.
Соответственно нажимать надо либо до вставки и вставлять код в середину (куда курсор автоматически встанет), либо потом выделять и нажимать.
Как в ворде )