Обновите div, который содержит код PHP, без обновления страницы

0

У меня есть 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>

Заранее спасибо.

Теги:
refresh

2 ответа

4
Лучший ответ

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/

  • 0
    спасибо, что скрипт работал отлично
1

Насколько я понимаю вас, вы пытаетесь выполнить свой PHP в браузере, что невозможно. Ваш сервер анализирует PHP и заменяет этот код на случайную строку.

Вам нужен запрос AJAX на ваш сервер, который оценивает этот скрипт и отправляет его клиенту. В упрощенном виде:

request = new XMLHttpRequest();
request.open("GET", "my.php");
request.send();
$("#randomtext").html(request.response);
  • 0
    и что, если я помещу свой код PHP в файл PHP и вызову его из JavaScript? это может сработать?
  • 0
    Я добавил пример вызова для этого, и да
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню