[Решено] Как обновить значение формы в функции ajax callback

Главные вкладки

Аватар пользователя nitskel nitskel 15 октября 2014 в 3:50

Помогите, пожалуйста, а то никак не могу решить эту неприятность.

Не получается обновить элемент формы типа value (префиксов и суффиксов у него нет).
Пытался менять значение переменной и $form и $form_state, но эти изменения не сохраняются.

В функции аякс вызова использую следующую конструкцию.

function ajax_change_callback(&$form, &$form_state){
 
  #... Код по формированию html

  $commands[] = ajax_command_replace('#wrap1', $html1);
  $commands[] = ajax_command_replace('#wrap2', $html2);
  return array('#type' => 'ajax', '#commands' => $commands);
}

Комментарии

Аватар пользователя nitskel nitskel 15 октября 2014 в 23:32

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
См. как сделано в https://www.drupal.org/project/examples[/quote]

Там нет похожего. То есть, как я понимаю, в одной callback функции никак не отправить и аякс комманду и вернуть элемент одновременно.
Лично я только одного не могу понять, почему ни &$form, ни &$form_state не сохраняется. Аякс вызывается по элементу типа button.

Пока в голову приходить только либо задействовать variable_set или переменную $_POST. Но это блин уже не Form.Api получается.

Аватар пользователя nitskel nitskel 16 октября 2014 в 1:05

Использовал связку variable_set и variable_get. Причем на зарубежных сайтах нашел, что люди именно таким способом и пользуются.