Как использовать AJAX-запросы в Magento

AJAX (Asynchronous JavaScript And XML — Асинхронный JavaScript и XML) – это уже достаточно устарелая, но очень популярная технология в Интернете, которая позволяет получать информацию с сервера, не перезагружая всю страницу (а обновляя только нужные блоки сайта).

В этом уроке мы рассмотрим практическое использование технологии AJAX в вашем собственном модуле, который разработан для CMS Magento.

 

 

Практика

1) Создайте контроллер в своем модуле по следующему адресу, например:

Namespace/ModuleName/controllers/AjaxController.php

или создайте новый action (действие) в уже существующем контроллере.

 

2) Чтобы создать действие в контроллере, например indexAction(), добавьте этот код в файл контроллера:

 

public function indexAction() {
  $this->loadLayout();
  $this->renderLayout();
}

 

3) Затем добавьте в файл обновления макета в теме, например,

app/design/frontend/ThemePackage/Theme/layout/ajax-layout.xml

такой код:

 

<modulename_ajax_index>
  <block type="modulename/block" name="root" template="path/to/template.phtml" />
</modulename_ajax_index>

 

где нод modulename – это маршрутизатор фронтенда, ajax – это название контроллера, а index – название действия контроллера

 

4) После этого добавьте обновление макета в файле config.xml в папке etc модуля:

 

<layout>
  <updates>
    <modulename>
      <file>ajax-layout.xml</file>
    </modulename>
  </updates>
</layout>

 

5) После этого очистите кэш, и вы будете иметь доступ к экземпляру класса Block из файла-шаблона template.phtml

 

6) И, наконец, чтобы протестировать хорошую работу, вызываем Ajax контроллер с шаблона с помощью простого JavaScript, например:

 

xmlhttp.open("GET","/modulename/ajax/index/test/"+value,true);

 

или же с помощью библиотеки jQuery:

 

jQuery.ajax({
  url: "<?php echo $this->getUrl('modulename/ajax/index'); ?>",
  type: "POST",
  data: "size="+jQuery(this).val(),
  success: function(data) {
   jQuery('#results').html(data);
  }
});

 

 

Recent Posts

Удаленная разработка из тропиков: Техническая сторона, инфраструктура и организация рабочего пространства

Алоха! Последние несколько лет окончательно закрепили тренд на отдаленную работу. Для веб-разработчиков, DevOps-инженеров и администраторов…

1 неделя ago

Хмель, солод, дрожжи и вода: как создается характер пива

Кажется, пиво — напиток простой: четыре ингредиента, понятная технология. Но одни и те же хмель,…

1 неделя ago

SIP-транки – что это такое и как они работают в IP-телефонии

В современной IP-телефонии немаловажную роль играет технология, обеспечивающая передачу голоса через Интернет между бизнесом и…

3 недели ago

Почему стоит выбрать ноутбук Apple MacBook Pro 14 для современных ИТ-задач

Выбор рабочей машины для веб-разработчика или администратора серверов — является всегда компромиссом между портативностью, автономностью…

4 недели ago

Практический гайд: как подобрать надежный бесперебойник для домашнего роутера

Исчез свет и вместе с ним мгновенно исчезла связь с окружающим миром? Это знакомая и…

4 недели ago

Google теряет монополию: Как подготовить IT-сайт к AI-поиску (GEO)

Что вообще случилось с поиском в интернете? Я не побоюсь сказать это вслух: произошла настоящая…

1 месяц ago