Drupal 8. Несколько способов вывода информации черех Ajax

Опубликовано admin - пн, 01/27/2020 - 23:23

О том, как осуществить вывод информации с использованием ajax в Drupal 8. В Drupal 8 имеется несколько методов вывода информации через ajax - c применением методов Api и с использованием стандартных функций jQuery. При этом jQuery в Drupal 8 установлена по умолчанию.

Первый пример, первый способ.

Поэтому первым примером рассмотрим загрузку содержимого с использованием стандартных функций фреймовика jQuery. В качестве примера я буду использовать вывод представления (view). При этом первый пример будет выводить "голый html".

Для этого необходимо использовать функции модулей. Итак создадим простой модуль со следующей структурой.

Описывать создание простого модуля я не буду, статью на данную тематику можно посмотреть по адресу - /node/974. Сразу перейду к файлу welcome.routing.yml.

developer.kommentiruemoe:
  path: 'developer/kommentiruemoe'
  defaults: { _controller: '\Drupal\developer\Controller\DeveloperController::kommentiruemoe' }
  requirements:
    _access: 'TRUE'

В нем необходимо создать маршрут, путь по которому класс контроллер будет выводить результат. В нашем случае это developer/kommentiruemoe

Код контроллера следующий:

При этом обратите внимание на строчку:

без нее вывести "голый" html не получится.

В данном примере я выводил view последних статей. Для передачи и получения параметров через GET и POST можно использовать следующий код:

Можно использовать более сложную вариацию вывода информации из представления.

Можно выводить не только view, но и например node:

На jQuery код выглядит следующим образом:

Таким образом, при прокрутке окна срабатывает функция jQuery.ajax.
Это к примеру, если вам необходимо получить и вывесить отдельные данные из view, а не весь код.
 

2 cпособ вывода информации через ajax.

Второй способ основывается на на классе AjaxResponse();
К примеру, данный код заменяет информацию на node.

В примере выше элемент структуры DOM с селектором .load-content будет заменен.

Ajax api Drupal 8 содержит целый перчень команд для работы с ajax (поный перечень команд можно найти в статье "Core AJAX Callback Commands").
Полная концепция ajax API находится по адресу https://www.drupal.org/docs/8/api/ajax-api/basic-concepts и по адресу https://www.drupal.org/docs/8/api/ajax-api. Примеры работы с загрузкой элементов форм через  ajax запросы можно найти по адресу https://www.drupal.org/docs/8/api/javascript-api/ajax-forms.

Еще одним интересным способом вывода информации является загрузка  информации из блока

Разберем пример указанный ниже:

В данном примере мы вводим форму через ajax. Как вы догадались можно вывести почти все что угодно. К сажалению, указанный код не работает во всех версиях Drupal 8. В моей версии 8.7.0 данный метод на сработал.

3 способ. Дополнительный пример вывода ajax данных (вывод формы и связанных с ней элементов):

При этом, внутри функции myAjaxCallback возможно использовать различные методы для обновления данных форму и ее элементов. Полный пример содержится на официальном сайте https://www.drupal.org/docs/8/api/javascript-api/ajax-forms#s-ajax-commands-ajaxresponse.

Взаимосвязанные материалы

# 1. Как правильно кэшировать хлебные крошки в Drupal 8 (среда, января 29, 2020 - 14:12 ),

Несколько раз сталкивался с тем что последний элемент Breadcrumb кэшировался на страницах с типом "node", несмотря на то, что страница менялась. То же самое наблюдалось и с view. читать...

# 2. Drupal 8. Несколько способов вывода информации черех Ajax (понедельник, января 27, 2020 - 23:23 ),
О том, как осуществить вывод информации с использованием ajax в Drupal 8. В Drupal 8 имеется несколько методов вывода информации через ajax - c применением методов Api и с использованием стандартных функций jQuery. При этом jQuery в Drupal 8 установлена по умолчанию. читать...
# 3. Маленькая заметка по Drupal, как получить изображение установленное по умолчанию (пятница, ноября 15, 2019 - 10:54 ),

Маленькая заметка по Drupal 8. Как получить изображение установленное по умолчанию:

читать...
# 4. Drupal 8. Шаг за шагом как создать модуль с отображением в admin панели (суббота, сентября 28, 2019 - 22:12 ),
Часто требуется не только создать модуль с функциональностью на страницах сайта, но и предоставить возможность конфигурировать настройки модуля в администраторском разделе. читать...
# 5. 15 лучших модулей в Drupal 8 (среда, сентября 25, 2019 - 16:11 ),

Drupal 8 одна из популярнейших CMS в области создания сайтов. При этом для неё доступно огромное количество модулей, упрощающих жизнь как простому разработку, так и обычному пользователю.

читать...
На разработку сайта! Скидки до 20%!