У меня есть форма с выпадающим элементом «select», который иногда нужно будет добавлять пользователю.Итак, я добавил ссылку, чтобы открыть форму «Модальный фрейм», создал форму «Модальный фрейм» и сделал так, чтобы ее функция _submit () добавляла новые данные в таблицу, содержащую параметры для элемента select.Затем он «возвращает» новый идентификатор и имя для обратного вызова Javascript (как это делают модальные фреймы), а обратный вызов JS добавляет новый элемент в раскрывающийся список и делает его текущим выбранным элементом в браузере с помощью JQuery.Все это прекрасно работает.
Наконец, пользователь отправляет исходную форму и получает сообщение об ошибке «Обнаружен неправильный выбор. Пожалуйста, свяжитесь с администратором сайта.»
Функция создания формы создаетсписок опций из базы данных, который (я проверял) включает в себя новую опцию, поэтому я предполагаю, что Drupal использует кэшированную версию формы, а не перестраивает ее перед автоматической проверкой.Если вы вернетесь на одну страницу назад, затем вперед, в списке появится вновь добавленный выбор.
Я попытался добавить:
global $GLOBALS;
$GLOBALS['conf']['cache'] = FALSE;
к функции, которая создает страницу с проблемой, но это не имело значения.
К вашему сведению: это часть многостраничной формы, если это имеет значение.
Я также думал о попытке добавить опцию в кэшированную версию«родительская» форма в функции «дочерняя» форма _submit (), но не знаю, как получить form_build_id «родительской» формы.Кроме того, это кажется слишком большой суматохой (хотя я могу ошибаться в этом).
Идеи?