Пример AJAX в Bitrix (PHP)

Примем AJAX в BitrixДовольно недавно столкнулся с тем как организовать свой AJAX запрос в 1С Битрикс. Как правило почти все встроенные компоненты имеют встроенную поддержку AJAX и включается в настройках компонента, но думаю в большинстве случаев Вам самим придется писать компоненты с данным функционалом.





Компонент в Битрикс

Слева на картинке представлена обычная структура директорий и файлов для компонента в Битрикс. Сразу хочу заметить, что в этой статье я расскажу как организовать AJAX запрос, а не создание компонента. В моем компоненте уже добавлены необходимые файлы, у Вас файла script.js может не оказаться. В Битрикс файлы именованные как script.js и style.css подгружаются автоматически при загрузке компонента.


Свой AJAX скрипт можно разместить в шаблоне template.php или в script.js, свой скрипт я помещу в последний. Это может быть самый простой скрипт:



 
	$("#button").click(function () {
		
		$.ajax({
			url: $('#FORM').attr('action'),
			type: "POST",
                        data: {
                            Name : 'Petr'
                        },
			dataType: "json",
			success: function(data){
				alert(data.message);
			}
		});
	});

На счет параметра url - как правило в Битрикс можно брать адрес указанный в форме компонента, в таком случае Вы сможете обработать свой запрос причем не только в своей компоненте. Единственный недостаток данного подхода в том, что в ответ Вам будет возвращена вся страница, а это нас не устраивает, нам нужен обычный и короткий JSON ответ.


Для этого в файле component.php, Вам нужно обработать собственный запрос, к примеру так (самый простой пример):


 
    if(isset($_POST['Name'])) {
        $APPLICATION->RestartBuffer();
        $authData = array('message' => 'AJAX');
        echo json_encode($authData);
        exit();
    }


В данном случае мы проверяем, что существует элемент в POST запросе, дальше мы очищаем буфер - делается это для того, чтобы убрать все наполнение которое могло быть сгенерировано до того как выполнение PHP скрипта дошло до нашего компонента. Дальше мы формируем JSON массив, выводим его и останавливаем дальнейшее выполнение скрипта - иначе за нашим массивом будет идти сгенерированный контент и ответ будет испорчен.

На этом все, надеюсь мой пример поможет Вам понять как организовать AJAX в Битрикс.

Случайные статьи

Статья Чужие герои в Uncharted 2 добавлена с разрешения редакции сайта Игромания.Автор: Роман Епишин. В этот четверг, 28 января, компания Sony выпустит загружаемое дополнение PlayS...

Статья Новый чип Atom для сверхмощных телевизоров добавлена с разрешения редакции сайта Игромания.Автор: Павел Шубский. На выставке Intel Developer Forum 2009 была представлена об...

TorrentFreak объявили, для каких платформ нелегальные копии игр чаще всего скачивают из сети. Результаты были получены при анализе крупнейших торрент-трекеров. Ничего нового в резу...

Статья Getaway 3 и Eight Days живы добавлена с разрешения редакции сайта Игромания.Автор: Роман Епишин. Сайт Eurogamer, ссылаясь на продюсера Sony London Николаса Доусета, сообщил...

Популярный кооперативный хоррор Dead by Daylight празднует свой десятилетний юбилей масштабным обновлением. Главным подарком для фанатов станет появление одного из самых культовых ...