1. Наши основные группы и каналы: VK, Twitter и Reddit. Подписывайтесь!
  2. Форум работает за счет ваших пожертвований, поэтому у нас нет внешней рекламы.
    Пожертвовать рубль на развитие форума Вы можете по ссылке.
  3. Доступна продажа токенов DAPF Invest!
    Подробности в теме: Торговые площадки токена DAPF
Скрыть объявление
О том как быстро
набрать нужное
число сообщений
написано здесь
Пожертвовать рубль
на развитие
форума можно тут.

Базовые ajax запросы в Drupal Уроки

Тема в разделе "Drupal", создана пользователем X-ray, 18 окт 2014.

  1. X-ray Шустроган

    Репутация

    1.279 / 2.716


    Добавить в /sites/all/module/ новый модуль demo.
    В demo.info напишем:
    Код (Text):
    1.  
    2. name = Demo
    3. description = Демо ajax request.
    4. core = 7.x
    5.  
    В demo.module добавим:
    Код (Text):
    1.  
    2. /**
    3. * @file
    4. * Demo module, Basic Ajax request.
    5. */
    6.  
    7. /**
    8. * Implements hook_menu().
    9. */
    10. function demo_menu()
    11. {
    12. return array(
    13. 'demo/page' => array(
    14. 'page callback' => 'demo_page_callback',
    15. 'access callback' => TRUE,
    16. 'type' => MENU_CALLBACK,
    17. ),
    18. 'demo/ajax' => array(
    19. 'page callback' => 'demo_ajax_callback',
    20. 'access callback' => TRUE,
    21. 'type' => MENU_CALLBACK,
    22. 'delivery callback' => 'demo_ajax_delivery_callback',
    23. ),
    24. );
    25. }
    26.  
    27. /**
    28. * Demo page callback.
    29. */
    30. function demo_page_callback()
    31. {
    32. $path = drupal_get_path('module', 'demo');
    33. drupal_add_js($path . '/demo.js');
    34.  
    35. $output = '<p>This is an ajax demo link: ';
    36. $output .= l('Click me ! ', 'demo/page',
    37. array(
    38. 'fragment' => 'nojs',
    39. 'attributes' => array('id' => array('demo-ajax-link'))
    40. )
    41. );
    42. $output .= '</p>';
    43.  
    44. return $output;
    45. }
    46.  
    47. /**
    48. * Demo Ajax callback.
    49. */
    50. function demo_ajax_callback()
    51. {
    52. $response = array(
    53. 'status' => 1,
    54. 'data' => 'Hello ! ',
    55. );
    56.  
    57. return drupal_json_output($response);
    58. }
    59.  
    По клику на ссылку выведем в консоль результат запроса:
    Код (Text):
    1.  
    2. (function ($) {
    3. Drupal.behaviors.ajax_example = {
    4. attach:function (context) {
    5. $("#demo-ajax-link").click (function() {
    6. $.ajax({
    7. url: 'demo/ajax',
    8. success: function(data) {
    9. console.log(data)
    10. }
    11. });
    12. });
    13. }
    14. }
    15. })(jQuery);