У меня есть php-код, который находится в div. Он показывает случайный текст, помещенный в файл random.txt. Я хочу обновить этот div, чтобы загрузить новый текст в каждом - пусть говорят - 15 секунд, не обновляя страницу whoe. Я нашел несколько решений для перезагрузки div без обновления страницы, и, похоже, это можно сделать с помощью AJAX или JS, но они только обновляют его с помощью определенного содержимого или определенного файла, однако я не могу понять, как вставить этот кода и обновить его.
Вот как выглядит мой div:
<div id="randomtext">
<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>
</div>
Он загружает случайный текст в div при каждом обновлении.
Я попытался обновить div с помощью JS ниже, но он не работает вообще. Извините, я не в этом разбираюсь.
<script>
var auto_refresh = setInterval(
function () {
var newcontent= '<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>';
$('#randomtext').html(newcontent);
}, 1000);
</script>
<div id="randomtext"></div>
Заранее спасибо.
PHP скрипт и Javascript выполняются в разных средах. (Ваш сервер и браузер пользователя, соответственно.)
Вам нужно переместить встроенный PHP-скрипт в отдельный файл PHP. И используя что-то вроде этого:
content.php
<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>
Внутри вашей html-страницы
<script>
var auto_refresh = setInterval(
(function () {
$("#randomtext").load("path/to/content.php"); //Load the content into the div
}), 1000);
</script>
<div id="randomtext"></div>
Документ для функции загрузки jQuery: http://api.jquery.com/load/
Насколько я понимаю вас, вы пытаетесь выполнить свой PHP в браузере, что невозможно. Ваш сервер анализирует PHP и заменяет этот код на случайную строку.
Вам нужен запрос AJAX на ваш сервер, который оценивает этот скрипт и отправляет его клиенту. В упрощенном виде:
request = new XMLHttpRequest();
request.open("GET", "my.php");
request.send();
$("#randomtext").html(request.response);