ajax_command_after($selector, $html, $settings = NULL)
Вставляет содержимое $html
после элемента с селектором $selector
используя jQuery метод after().
Пример использования:
$commands[] = ajax_command_after('#page-title', '<h2>Some subtitle</h2>');
ajax_command_alert($text)
Выводит алерт с текстом $text
используя нативную javascript функцию alert()
.
Пример использования:
$commands[] = ajax_command_alert('This alert message');
ajax_command_append($selector, $html, $settings = NULL)
Добавляет содержимое $html
в конец элемента с селектором $selector
используя jQuery метод append().
Пример использования:
$commands[] = ajax_command_append('body', '<div>Footer message</div>');
ajax_command_before($selector, $html, $settings = NULL)
Добавляет содержимое $html
перед элементом с селектором $selector
используя jQuery метод before().
Пример использования:
$commands[] = ajax_command_before('#page-title', '<div>Page title:</div>');
ajax_command_changed($selector, $asterisk = '')
Добавляет к элементам с селектором $selector
класс ajax-changed
.
Пример использования:
$commands[] = ajax_command_changed('input[name="title"]');
ajax_command_css($selector, $argument)
Меняет css свойства элемента с селектором $selector
используя jQuery метод css().
Пример использования:
$commands[] = ajax_command_css('input[name="title"]', array('background' => 'red'));
ajax_command_data($selector, $name, $value)
Изменяет внутренние данные элемента с селектором $selector
используя jQuery метод data().
Пример использования:
$commands[] = ajax_command_data('.node', 'nid', '123');
ajax_command_html($selector, $html, $settings = NULL)
Изменяет содержимое элемента с селектором $selector
на $html
используя jQuery метод html().
Пример использования:
$commands[] = ajax_command_html('#page-title', 'New page title');
ajax_command_invoke($selector, $method, array $arguments = array())
Выполняет jQuery метод $method
для элемента с селектором $selector
.
Пример использования:
$commands[] = ajax_command_invoke('input[name="title"]', 'addClass', array('error'));
ajax_command_prepend($selector, $html, $settings = NULL)
Вставляет содержимое $html
в начало элемента с селектором $selector
используя jQuery метод prepend().
Пример использования:
$commands[] = ajax_command_prepend('#page-title', 'Drupal: ');
ajax_command_remove($selector)
Удаляет элемент с селектором $selector
используя jQuery метод remove().
Пример использования:
$commands[] = ajax_command_remove('.message');
ajax_command_replace($selector, $html, $settings = NULL)
Заменяет элемент с селектором $selector
на содержимое $html
используя jQuery метод replaceWith().
Пример использования:
$commands[] = ajax_command_replace('#page-title', '<h1 id="page-title">New page title</h1>');
ajax_command_restripe($selector)
Обновляет классы odd/event у строк таблицы с селектором $selector
. Применяется после изменения таблиц.
Пример использование:
$commands[] = ajax_command_restripe('table.ajax-table');
ajax_command_settings($argument, $merge = FALSE)
Настройки, которые будут переданы в Drupal.attachBehaviors
.
Пример использования:
$setting['ajax_forms_test']['foo'] = 42;
$commands[] = ajax_command_settings($setting);
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- AJAX в форме корзины Commerce 2
Комментарии
А что если нужно выполнить цепочку связанных команд. Например первая команда делает что-то и получает результат, а вторая команда делает что-то уже с этим результатом..
к примеру:
$("#example_j span").clone().prependTo("#example_j p");
http://xandeadx.ru/blog/drupal/378
Подскажите, как получить содержимое селектора?
А то метод только вставляет.
ajax_command_html($selector, $html, $settings = NULL) - в jquery может как получить так и вставить html, а как здесь быть?
никак. команды работают только в одну сторону
Сам увидел то что надо - в '#ajax' => 'callback' там же в функцию передаются: function ($form, $form_state)
$form_state['values'] - все данные формы
Написал модуль - 3-и функции - добавляет к Localization client кнопку "yandex translate"
То есть когда нужно перевести строку
1. выбираем строку
2. нажимаем скопировать
3. нажимаем yandex translate для автоперевода
4. нажимаем сохранить.
http://ssvm.ru/sites/default/files/modules/yandex_translate.zip
как мне на колбэке поля формы убить вюшку
function ajax_example_callback($form, &$form_state) {
$form = array();
ajax_command_html('.content', '', $settings = NULL);
ajax_command_replace('.content', ' ', $settings = NULL);
$commands[] = ajax_command_remove('.content');
xandeadx
спасибо за инфу.
Пытаюсь через ajax_command_settings отправить то, что вы описали в статье Hierarchical Select на AJAX, а именно отправить return $form['terms'];
Всяко уже пытался, но никак не получается. Или я ошибся и здесь нужен другой метод?
Заработало вот так. Рендерить форму можно прямо в callback функции :)
Если командой ajax_command_html происходит вставка не в блок div, nj тогда по умолчанию все в него обернется.
Чтобы этого не было, нужно использовать ajax_command_invoke($selector, 'html', array('content'))
@nitskel спасибо, пригодилось :)
Здравствуйте.такой вопрос: сделал добавление материала из блока через аякс,без перезагрузки страницы.Материал добавляется,однако есть проблема-форма остается заполненной,и не дает сразу добавить следующий материал.приходится перегружать страницу.
как сбросить форму?
ajax_command_settings() хоть и передаёт команды но при первом срабатывании аякса его нет. Только при втором срабатывании. Может я чтото не так делаю?
Отправлял через ajax.eventResponse(ajax, {});
принимаю settings.stopWatch то stopWatch не доступен т.к нет его ещё
}
Добавить комментарий