Многие разработчики предпочитают jQuery, но знание нативного AJAX API Битрикс полезно при работе с платформой.
HTML
<a href='#' onclick='goAjax(); return false;'>Go</a>
<div id='container'></div>Серверный обработчик (ajax.handler.php)
header('Content-Type: text/html; charset=windows-1251');
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
CModule::IncludeModule('iblock');
define("STOP_STATISTICS", true);
echo '<pre>', print_r($_GET).'</pre>';define("STOP_STATISTICS", true) исключает AJAX-запросы из статистики.
JavaScript
function goAjax()
{
function fvoid(data)
{
jsAjaxUtil.CloseLocalWaitWindow();
document.getElementById('container').innerHTML = data;
}
jsAjaxUtil.ShowLocalWaitWindow();
var TID = CPHttpRequest.InitThread();
CPHttpRequest.SetAction(TID, fvoid);
CPHttpRequest.Send(TID, 'ajax.handler.php', {'param':'test_param'});
}Ключевые функции
CPHttpRequest.InitThread()— инициализирует поток запросаCPHttpRequest.SetAction(TID, callback)— задаёт callback-обработчикCPHttpRequest.Send(TID, url, params)— отправляет GET-запросCPHttpRequest.Post(TID, url, params)— отправляет POST-запросjsAjaxUtil.ShowLocalWaitWindow()— показывает индикатор загрузкиjsAjaxUtil.CloseLocalWaitWindow()— скрывает индикатор загрузки
Перед использованием необходимо вызвать CAjax::Init() для инициализации клиентской библиотеки.
Вывод
Для новых проектов лучше рассмотреть современные фреймворки, например jQuery. Нативный Bitrix AJAX удобен при работе с уже существующими сайтами на платформе.
