Обновить часть веб-страницы в php

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

4 ответа

PHP не может этого сделать, только клиентский язык, такой как JavaScript. При этом библиотека jQuery позволит вам сделать это действительно легко с ее функциональностью AJAX.

Index.php

<div id="scores"><!-- score data here --></div>

Может быть обновлен с помощью следующего JavaScript:

$("#scores").load("index.php #scores");

Это будет загружать содержимое #score из индекса снова без обновления всей страницы.

Вы можете даже автоматизировать его, чтобы обновлять каждые 30 секунд, используя setInterval();

var $scores = $("#scores");
setInterval(function () {
    $scores.load("index.php #scores");
}, 30000);

Вы можете прочитать больше о $.load() на http://api.jquery.com/load/.

Вот базовый пример использования PrototypeJS.

new Ajax.Updater('containerId', '/url/to/get/content', {
  parameters: { somename: 'somevalue' }
});
  • Первый аргумент - это идентификатор контейнера, в который помещается результат вызова Ajax.
  • Второй аргумент - это URL для отправки запроса
  • Третий аргумент, в его наиболее простой форме, это список параметров для отправки на URL.

Для получения более подробной информации о запросе прототипа Ajax обратитесь к документации Ajax.Request.

Взяв страницу из приятного ответа JQathery Джонатана, вы узнаете, как выполнить запрос Ajax по таймеру с использованием Prototype's PeriodicalExecuter.

new PeriodicalExecuter(function(pe) {
    new Ajax.Updater('containerId', '/url/to/get/content', {
      parameters: { somename: 'somevalue' }
    });
}, 30);

На http://www.jibbering.com/2002/4/httprequest.html есть хорошее руководство о том, как работает объект XMLHttpRequest.

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

Самый быстрый способ - использовать функцию загрузки jquery.

скажем, содержимое, которое вы хотите изменить, находится внутри div

тогда вы можете просто:

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script type="text/javascript">

$().ready(function() {
$("#dynamic").load("http://url/to/the/dynamic/data");
});

</script>
Другие вопросы по тегам