ahah и выпадающие списки
Потребовалось создать форму. На форме два списка. В первом списке производим выбор и в зависимости от выбранного пункта должно загрузиться содержимое второго списка. Ясно, что делается это с помощью ajax. Но я JavaScript никогда не увлекался, решил использовать какую-нибудь библиотеку.
Сначала попробовал xajax. Тестовые скрипты работали прекрасно, но возникли проблемы с подключением к Drupal. Потом мне посоветовали jQuery. Благо, что он встроен в Drupal и работать с ним можно таким образом достаточно комфортно. Только начал осваивать - как оказалось, что у многих элементов форм в Drupal, в том числе select, имеется свойство ahah. Которое собственно и предназначено для создания подобного рода вещей.
Засел за эксперименты и через некоторое время удалось сделать зависимые списки. Оформил все это в виде модуля. Ссылка на архив ниже.
| Вложение | Размер |
|---|---|
| ahah.zip | 1.43 кб |

Комментарии:
Re: ahah и выпадающие списки
Опубликовано Гость (не проверено) в Втр, 24/03/2009 - 17:12.Огромное спасибо! Искал везде пример работы с ahah - везде только общие словоблуднические рассуждения, а кода нет. Спасибо за код!
Re: ahah и выпадающие списки
Опубликовано Гость (не проверено) в Втр, 19/05/2009 - 11:23.Спасибо!
Опираясь на Ваш пример наконец-то разобралась с ahah'ом в D6. Заодно были сделаны пара полезных фиксов, благодаря которым optionwidgets_select будет поддерживать ahah аки нормальный select :) будут выложены на друпал.орг
Re: ahah и выпадающие списки
Опубликовано Гость (не проверено) в Ср, 08/07/2009 - 11:10.Огромучее спасибо, очень помогло разобраться, но у меня всё это счастье заработало когда я кое-что поправил в вызове функции:
function ahah_get_select(){...}
Заработала вот так:
function ahah_get_select($form, &$form_state){...}
Re: ahah и выпадающие списки
Опубликовано vikeng в Пт, 10/07/2009 - 07:32.А какая у вас версия друпал? Этот модуль я проверял в 6-й версии.
Re: ahah и выпадающие списки
Опубликовано Валентин (не проверено) в Вс, 13/12/2009 - 21:14.у меня на последнем друпале(6.14) заработало. Большое спасибо за данный модуль
Отправить комментарий