Я добавляю обратный вызов ajax в поле выбора
$form['field_equipe_membre']['виджет']['#ajax'] = массив(
'обратный вызов' => 'ajax_desactive_unites_field_callback',
'событие' => 'изменить',
'метод' => 'html',
'wrapper' => 'edit-field-unite-de-recherche-wrapper',
);
Из поля triggering_element мне удалось получить значение через запрос БД и выбрать его в другом поле выбора.
$trigger = $form_state->getTriggeringElement();
$selected_equipe = $trigger['#value'];
$ запрос....
$response = новый AjaxResponse();
$content = '<option value=\"'.$row_unite['nid'].'\" selected=\"selected\">'.$row_unite['title'].'</option>';
$response->addCommand(new AppendCommand('#edit-field-unite-de-recherche', $content));
вернуть $ответ;
Но когда я отправляю форму, выбранное значение обратным вызовом не сохраняется.
Что такое волшебные линии или правильный метод для этого?
я тестировал
$form_state->setRebuild();
в обратном вызове; Я также тестировал
$form_state->setValue('field_unite_de_recherche', $row_unite['nid']);
$form_state->setCached(ИСТИНА);
Я протестировал решение, предложенное где-то на этом форуме, чтобы определить скрытое поле в hook_form_edit_alter.
$form['product_id']['#type']='скрытый';
$form['product_id']['#prefix']='<div id="liberte_pid">';
$form['product_id']['#suffix']='</div>';
и сохранить значение в обратном вызове
$form['product_id']['#value'] = массив(
$row_unite['нид'],
);
Но ни одно из этих решений не дало решения для меня.
я тоже краснею https://www.drupal.org/project/drupal/issues/2263569 страница, но я не знаю, что с ней делать.
Итак: как сохранить это выбранное значение обратным вызовом ajax?