В компонентах Битрикс есть встроенный функционал для AJAX подгрузки. Его так же можно использовать, например для бесконечного скролла новостей. Но есть и более простой способ, с помощью которого можно загружать ответ любого компонента без перезагрузки страницы. Его мы и рассмотрим в этой статье.
В компонентах Битрикс есть встроенный функционал для AJAX подгрузки. Его так же можно использовать, например для бесконечного скролла новостей. Но есть и более простой способ, с помощью которого можно загружать ответ любого компонента без перезагрузки страницы. Его мы и рассмотрим в этой статье.
Обработчик AJAX
Для начала нам нужно создать файл, к которому будем обращаться через AJAX-запросы. Назовем его ajax.php и поместим в корень сайта. Так как файл должен отдавать только данные, то мы подключаем только API Битрикс:
Пускай наш AJAX-запрос будет отдавать последние 10 новостей с помощью компонента bitrix:news.list. Но вы можете использовать абсолютно любой компонент. Добавляем компонент в файл ajax.php:
Теперь, если открыть наш файл /ajax.php в браузере, то должны отобразится новости.
AJAX-запрос
AJAX-запросы мы будем отправлять с помощью jQuery. Код можно использовать на любой странице:
script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
$(document).ready(function () {
$.ajax({
type: "POST",
url: '/ajax.php',
beforeSend: function () {
// Вывод текста в процессе отправки
$('#news').html('
Загрузка...
');
},
success: function (data) {
// Вывод текста результата отправки
$('#news').html('
'+data+'
');
},
error: function (jqXHR, text, error) {
// Вывод текста ошибки отправки
$('#news').html(error);
}
});
});
/script
Как видите все довольно просто, мы отправляем AJAX-запрос к файлу ajax.php и выводим ответ в <div id="news"></div>. В запросе как обычно можно передавать GET и POST параметры, например для указания номера страницы и т.д.
C 2012 года являюсь Битрикс Программистом. Программист 1С:Битрикс – это веб-разработчик с узким профилем, который работает непосредственно с продукцией от компании 1С.