Пример 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 в Битрикс.

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

Статья Продюсер Resident Evil хочет скрестить фильм и игру добавлена с разрешения редакции сайта Игромания.Автор: Андрей Чаплюк.Продюсер Resident Evil: Afterlife Джереми Болт заяви...

Оригинал статьи можно прочесть перейдя по ссылке Создатели Call of Duty готовят новую игру на сайте "Игромания".Бывшие руководители студии Infinity Ward уволенные издательством Act...

Вышел новый ролик самой ожидаемой игры 2012 года - Mass Effect 3. В ролике демонстрируется геймплей и хочется сказать сцена очень динамичная....

Статья AMD отказывается от поддержки старых видеокарт для Windows 7 добавлена с разрешения редакции сайта Игромания.Автор: Павел Шубский. Коллеги с сайта Fudzilla наткнулись ...

Статья Шпионы затаились добавлена с разрешения редакции сайта Игромания.Автор: Андрей Чаплюк. Похоже, нынешней осенью станет еще на одну хорошую игру меньше. Порталы GameStop и A...