UMIhelp

Разработка сайта на UMI.CMS => JS и AJAX => Тема начата: psw2020 от 09 Июля 2014, 10:02:08

Название: AJAX обращение к кастомному макросу
Отправлено: psw2020 от 09 Июля 2014, 10:02:08
Обращение к кастомному макросу средствами AJAX производится через протокол  /udata/custom/ . Разберем простой пример сложения двух чисел в кастомном макросе (данные будут переданы через AJAX).

Итак в файле /classes/modules/custom.php пишем новую функцию:
public function ajaxTest(){
$result = $_POST['param1'] + $_POST['param2'];
echo $result;
exit();
}

Далее пишем JS код для отправки данных макросу (я работаю с jQuery)
function sendData() {
$.post(
  "/udata/custom/ajaxTest", //Пусть к макросу
  {
    param1: 10, //Передаваемые параметры
    param2: "4"
  },
  onSuccess //Функция которая будет выполнена по завершению запроса
);
 
function onSuccess(data) //Сама функция
{
  alert("Сумма: " + data);
}
};

И соответственно HTML код для вызова функции
<a href="#" onclick="sendData()">Ткни меня!</a>

P.S. надеюсь информация будет кому-то полезна  ;)
Название: Re:AJAX обращение к кастомному макросу
Отправлено: e.ioffe от 09 Июля 2014, 11:17:28
Почему запрос не /udata/custom/ajaxTest/.json ? Ведь UMI из коробки может работать с json
Название: Re:AJAX обращение к кастомному макросу
Отправлено: psw2020 от 09 Июля 2014, 11:24:42
Думаю в этом примере корректны оба варианта
Название: Re:AJAX обращение к кастомному макросу
Отправлено: e.ioffe от 09 Июля 2014, 11:36:54
Дело не в том, корректны или нет. Если есть типовое поведение UMI, зачем писать свой велосипед? В дальнейшем поддерживать проект с такими велосипедами - очень неблагодарное занятие.