Я работаю над блочным модулем и хотел бы выполнять операции ajax с его формами конфигурации, когда файл загружается через поле managed_file.
Таким образом, при изменении скрытого поля управляемого_файла (после успешной загрузки файла) происходит обратный вызов ajax. Аякс называется так:
function updateVideo($action){
(function ($) {
$.ajax({
url: '/block_video/update_video', // drupal menu path
dataType: 'json',
type: 'POST',
data: { 'action' : $action },
success: function(data){
// @ TODO
}
});
})(jQuery);
}
Зарегистрированный выше путь drupal (/ block_video / update_video) вызывает функцию, в которой я хотел бы получить переменную $ form_state конфигурации блока с ее текущим состоянием (не начальным). Можно ли увидеть текущие состояния формы конфигурации блока без непосредственного использования javascript и без вызова обновления страницы?
Для меня было бы намного проще использовать свойство '#ajax' в управляемом файле, но у него его нет. Поэтому я добавил обратный вызов ajax выше, ожидая изменения значения в скрытом элементе managed_file, и эта часть работает (используя метод, описанный здесь http://forum.jquery.com/topic/adding-a-change-event-on-a-hidden-field).
Я должен быть в состоянии получить значение $ form_state в моем пользовательском обратном вызове ajax. Я хотел бы сделать это так, как это делается с помощью FAPI [#ajax] [callback] (оба параметра $ form и $ form_state передаются в параметры обратного вызова - мне нужно только передать текущее значение $ form_state в мой обратный вызов или получить к нему доступ) Я не могу понять, как это делает Drupal.
Может быть, кто-то может помочь мне случайно ...
Спасибо.