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

09.09.2014 / PHP

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





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

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


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



  1.  
  2. $("#button").click(function () {
  3.  
  4. $.ajax({
  5. url: $('#FORM').attr('action'),
  6. type: "POST",
  7. data: {
  8. Name : 'Petr'
  9. },
  10. dataType: "json",
  11. success: function(data){
  12. alert(data.message);
  13. }
  14. });
  15. });
  16.  

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


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


  1.  
  2. if(isset($_POST['Name'])) {
  3. $APPLICATION->RestartBuffer();
  4. $authData = array('message' => 'AJAX');
  5. echo json_encode($authData);
  6. exit();
  7. }
  8.  


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

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

 

рекомендуемые программы

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