Я разрабатываю страницу, в которой мне нужно обновить часть веб-страницы, а не целую в php, используя Ajax. Пожалуйста, помогите мне сделать это, спасибо заранее
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/#loading-page-fragments .
Вот пример использования PrototypeJS .
new Ajax.Updater('containerId', '/url/to/get/content', { parameters: { somename: 'somevalue' } });
Для получения дополнительной информации о запросе Prototype Ajax ознакомьтесь с документацией Ajax.Request .
Взяв страницу с приятным ответом Джонатана на jQuery, вот как вы должны выполнить запрос Ajax на таймере с использованием Prototype PeriodicalExecuter .
new PeriodicalExecuter(function(pe) { new Ajax.Updater('containerId', '/url/to/get/content', { parameters: { somename: 'somevalue' } }); }, 30);
Существует хорошее руководство по работе объекта XMLHttpRequest по адресу http://www.jibbering.com/2002/4/httprequest.html.
Вам просто нужно использовать это, с любым условием, для которого вы хотите активировать обновление, и скриптом 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>