У меня есть модуль cck, который в настоящее время делает это
- Пользователь вводит и сохраняет имя пользователя для стороннего веб-сайта на странице настроек модуля
- Пользователь добавляет / редактирует узел
- Когда пользователь получает форму добавления / редактирования, его имя пользователя выбирается из настроек и используется для вызова API, который выбирает некоторые данные, эти данные заполняют выбор в форме.
- Пользователь выбирает что-тоиз заполненных данных выберите, и при сохранении узел будет создан с пользовательским содержимым.
Это работает, но я бы хотел, чтобы это можно было сделать
- Пользователь добавляет / редактирует узел, отображается форма, и некоторые данные по умолчанию заполняют выбор, указанный выше
- Пользователь вводит свое имя пользователя в текстовое поле на форме, нажимает кнопку, которая запускает вызов API, и выборзаполняется данными, полученными из вызова API
- Пользователь выбирает что-то из данных, заполненных select, и при сохранении узел создается с пользовательским содержимым.
edit
Я попытаюсь сделать это с помощью javascript вместо того, чтобы ахах позаботился обо мне.Таким образом, когда кнопка нажата, вызов API все еще выполняется, но теперь изменение элементов select полностью выполняется с помощью манипуляций ajax и dom.Однако, когда эта форма отправлена, я получаю эту дружественную ошибку.
Обнаружен неправильный выбор.Пожалуйста, свяжитесь с администратором сайта.
и, насколько я понимаю, это вызвано тем, что form_state отличается от того, что хранится в форме (мой измененный список выбора).
У меня естьНесколько идей о том, как обойти эту ошибку, но я хотел бы знать, есть ли у кого-то другое представление о том, как это сделать.
Я играл с AHAH, чтобы заставить это работать, но это было сложно, так как я не могу найти никаких примеров, похожих на то, что я пытаюсь сделать, или каких-либо объяснений того, как использовать AHAH с CCK.У меня есть обратный вызов AHAH, настроенный таким образом в обратном вызове hook_process hook_elements, и обратный вызов выполняется, но я думаю, что есть несоответствие в том, что находится в кэшированном form_state и что отображается на экране, потому что при сохранении / предварительном просмотре узла, естьне отображается ничего, кроме меню и навигации.Я получил правильную информацию для отображения в веб-форме, но при отправке это не удается.
Я также немного растерялся относительно правильного способа заставить AHAH работать с CCK и именно то, что я 'Я должен вернуться и сделать.(вернуть восстановленную часть формы? что я кеширую? и т. д.)
Таким образом, у кого-нибудь есть предложения о том, как работает обратный вызов ahah, известны примеры работы ahah с веб-сервисами и / илиcck, или есть альтернативные идеи?
Надеюсь, это понятно, и спасибо за понимание!