ajax запросы

ajax запросы

от Ilya Russkikh -
Количество ответов: 3

есть событие ячейки таблицы:
$celloptions['onclick'] = 'document.location=\''.
$CFG->wwwroot.'/mod/'.$event['type'].'/view.php?id='.$event['cm']->id.'\';';
цель: прикрутить функцию javascript, которая будет с помощью ajax выполнять запрос "update" к БД, а по успеху выполнения ajax выполнять redirect по указанной ссылке...
версия moodle: 2.8.1+
СУБД: mySQL

В ответ на Ilya Russkikh

Re: ajax запросы

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Делаете страницу обработчик. Пример  - \course\ajax\management.php

Делаете js-файл с функциями - пример \course\completion.js. Там есть функции handle_success и  handle_failure  для обработки ответа и ошибки. Там прописыывается компонент M.<имя модуля>. Ещё один пример в \rating\module.js

Для выполнения ajax вызова используется Y.io(адрес php-обработчика, cfg);

переменная Y изначально передается через функцию init 

js-файл подключается и вызывается функцию init с помощью $page->requires->js_init_call('M.имя модуля.init');

Вызов js из php выполняется или засчёт навешивания обработчика на событие onclick, для этого используется функция on() элементов. Или путём прямого вызова M.имя модуля.функция обработчик.

Очень непонятно объяснил, но надеюсь что-то прояснится


В ответ на Vadim Dvorovenko

Re: ajax запросы

от Ilya Russkikh -

Вызов js из php выполняется или засчёт навешивания обработчика на событие onclick, для этого используется функция on() элементов
вот тут не понял

написал вот такой код: 

cellOnclick: function () {

var cfg = {

            method: 'POST',

            on: {

myOnclick: function() {

alert("success");

}

   }

    };

Y.ui(M.cfg.wwwroot + '/blocks/progress/querydb.php',cfg);

     }


и он не работает, помогите пожалуйста... заранее спасибо