Контроллер для Ajax запроса в Joomla 3

27.06.2018

Самый простой вариант, работать с ajax в Joomla, это обратиться к контроллеру компонента.

Пример такого запроса /index.php?option=com_test&task=ajax.method&tmpl=component (Подробнее про &tmpl=component).

При этом сделать это можно как из другого компонента, так и модуля:

 
let response = await fetch("/index.php?option=com_test&task=ajax.method&tmpl=component&id=123");

if (response.ok) {
  let json = await response.json();
} else {
  alert("Ошибка HTTP: " + response.status);
}

Контроллер для такого запроса должен быть по адресу /components/com_test/controllers/ajax.php и содержать метод с именем method

 
<?php
  defined('_JEXEC') or die;

  class testControllerAjax extends JControllerForm
  {

    public function method()
    {
      $aRet = array();

      $input = JFactory::getApplication()->input;
      $id= $input->getInt('id', 0);

      $oModel = JModelLegacy::getInstance('Item', 'testModel');
      $aRet = $oModel->method($id);

      header("Content-Type: application/json");
      die( json_encode($aRet) );
    }

  }


Категории: CMS Joomla 3.X, Joomla
Пометки: модель Ajax, Контроллер Ajax запроса в Joomla 3
Яндекс.Метрика