Попытка выяснить, как решить проблему «обнаружен незаконный выбор» при использовании ajax-методов не FAPI для замены списка выбора.
Пример в форме создания узла, естьссылка под списком выбора, чтобы открыть пользовательскую форму в модальном окне ctools для добавления нового значения, а при успешной отправке формы в модальном режиме выбор формы узла заменяется новыми значениями.
<?php
if (!empty($form_state['executed'])) {
// Replace node form select if form submit was successful.
module_load_include('inc', 'node', 'node.pages');
$node_form = node_add('photo');
$new_field = drupal_render($node_form[$field]);
$output = array();
$output[] = ajax_command_replace($selector, $new_field);
$output[] = ctools_modal_command_dismiss();
}
print ajax_render($output);
Я могу заставить его работать до тех пор, пока не отправлю исходную форму узла, где я получаю ошибку «незаконного выбора», предположительно потому, что форма узла использует для проверки кэшированные значения формы.Setting $ form_state ['rebuild'] = TRUE;исправляет ошибку неправильного выбора, но тогда поле изображения в форме узла не работает должным образом.Файл изображения загружается и сохраняется на узле, но теги thumbnail, alt и title не включаются).Dblog получает эту ошибку, потому что он пытается отправить данные в старый идентификатор формы (предварительная перестройка).
location: file/ajax/field_image/und/0/form-DSbMdFlKNDaAJSFY4fVIHkcg2eMCDqYZHUfitCnR0VA
message: Invalid form POST data.
Есть ли лучший способ заменить список выбора, чтобы избежать ошибки «недопустимого выбора», или следуетЯ проверяю, есть ли ошибка файлового модуля с $ form_state ['rebuild']?Я не смог найти документацию о том, как вызвать событие $ form #ajax из другой формы, в качестве возможной альтернативы.Не уверен, что это вообще возможно.Любое руководство будет оценено.