Обновить часть веб-страницы в 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>