AJAX в drupal 7 простейшее приложение

В наше время уже не обойтись без ajax на сайте..
Это и красиво и удобно и более целесообразно чем постоянно грузить непонятные страницы..
Как же создать ajax приложение в drupal 7 ?
Необходимо создать модуль для drupal, который даст возможность доставить данные. Для упрощения данные у нас меняться особо не будут (за исключением того, что в них будет GET параметр передаваемый странице).
Создаём папку nloader в папке /site/all/modules
Это будет папка нашего приложения.
В ней создаём файл описания модуля nloader.info:

name = Node loader
description = Allows load node's content using AJAX
core = 7.x

Теперь сам модуль. Это самый низы (можно сказать плинтус) поэтому будет всего 2 функции.
Файл nloader.module :

<?php
function nloader_menu() {
    // страница articles_ajax
    $items['articles_ajax'] = array(
      'page callback' => 'nloader_output', //функция для вывода данных
      'type' => MENU_CALLBACK,
      'access arguments' => array('access content'),
    );
    return $items;
}
function nloader_output() {
    $nid = $_GET['nid']; // получаем переменную
    // формируем данные
    $data = array(
      'title' => t('Your title'),
      'body' => t('Your body'),
      'nid' => $nid,
    );
    drupal_json_output($data);
}
?>

Думаю тут всё должно быть ясно. Данные формируем в формате json.
Теперь если вы пройдёте по адресу https://ваш_сайт/articles_ajax?nid=123 то увидите строку вроде:

{"title":"Your title","body":"Your body","nid":"123"}

Запросим её при помощи ajax. Пользоваться буду jquery, ибо так проще и быстрее.

$(document).ready(function () { 
  $.ajax({ 
    url: 'https://localhost/drupal/articles_ajax?nid=123', 
    dataType: "json", 
      success: function(data) { 
        console.log(data);
        console.log(data.title);
      } 
  });
});

Теперь в консоли разработчика можно увидеть такое:

Object { title="Your title", body="Your body", nid="123"}
Your title

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий