Не стал тему переносить в ветку на форуме, предполагаю, что если найдутся правильные ответы прям в блоге описать последовательность действий.
Итак, к чему это я все.
В свое время тренировался на друпале в плане его освоения, ну и как удобный пример для себя выбрал тему каталога фирм.
Начинал освоение с 5-й ветки, совсем недавно решил переместить это все на 6-ю. И столкнулся с проблемой.
Когда забиваешь фирму (в качестве нода в каталог) у нее выбираешь из селектов 3-и вещи
1) Страна
2) Город
3) Улица
все это находится в предварительно подготовленных таблицах.
Выбираем 1-н селект, яваскриптом выводится второй, яваскриптом выводится третий.
Причем изначально улицы не были забиты в селект.. и чтоб пройти валидацию ставил '#DANGEROUS_SKIP_CHECK' => TRUE, чтоб он не проверял заданые значения в качестве опций, это я уже потом делал в форм валидейт, в шестой версии любители этой функции сваяли какой-то патч. Но интересует без внесения изменений создание того-же самого.
Дык вот.. в шестой версии это убрали предложили пользоваться AHAH'ом.. кто нибудь разбирался с этим зверем?
В данный момент как раз застопорился на том что в правильном порядке при добавлении фирмы надо выбирать страну город... но при отправке формы ругается на то что значения не были изначально забиты в опции. Можно конечно забить все города, все улицы прям при формировании формы.. и потом при загрузке страницы отсеч ненужное... но это избыток данных.
Есть какое нибудь предположение или решение?
Если что могу примерно продемонстрировать о чем я говорю... вернее в чем у меня косяк.
Комментарии
up, или мне не стоит расчитывать на возможное решение проблемы?
А чего так шустро, подожди недельку, люди прочитают подумают, може и напишут.
Сам с похожей задачей мучаюсь. Тоже select, но не города. Сначала хотел делать с помощью jQuery, сегодня обнаружил, что есть #ahah. Думаю с помощью него делать.
Если что получится - напишу.
вот тут http://drupal.org/project/ahah_forms написано, только я не понял
Как я понял - это модуль под 5-й друпал. В нем реализовано примерно то же что в 6-м есть по умолчанию.
ну да, и там еще есть объяснение как им пользоваться
Отличие 6й версии от 5й в том, что формы кешируются, а при использовании ahah нужно перестраивать форму - тогда данные будут сохраняться и проходить валидаторы.
Рекомендую очень внимательно начать читать отсюда http://drupal.org/node/144132#form-state
работает отлично. Я за счет ahah подгружаю нужные мне данные в форму.
в вашем случае я так понял есть 3 селекта. при зимененнии в первом, во второй загружаются данные. при изменении во втором - в третий.
в ahah есть path указываете его на путь, который обрабатываете через меню
например:
'path' => 'mymodule/select_js'
в меню добавляете
$items => array ( 'path' => 'mymodule/select_js' ..........
и callback'ом возвращаете елемент отрендереной формы через drupal_json.
Данные, что будут вернуты обработкой - будут вствлены в елемент div с id, который вы укажете в 'wrapper' элемента ahah.
Сделал модуль, в котором есть форма с такими списками.
Кроме документации, в качестве примера для подражания, использовал стандартный модуль голосования.
Совершенно не понимаю, как же это всё-таки работает, но всё равно спасибо.