[РЕШЕНО] Как сделать связанные между собой 2-а "select list" ?

Главные вкладки

Аватар пользователя muaddip muaddip 24 августа 2012 в 20:01

Добрый вечер!
Есть задача сделать два связанных select lists, вида:
1. Марка автомобиля: |родительский select list|
2. Модель автомобиля: |дочерний select list|
Сделал "Модели автомобилей" дочерними терминами таксономии, а родительские термины "Марка автомобиля". Прикрутил модуль Hierarchical select, отлично работает, но выводит дочерний select list сбоку, и показывает дочерний, только после выбора родительского. А мне нужно чтобы шли один под одним, и отображались два поля изначально. Посмотрел модуль Conditional Fields тоже немного не то, что нужно: он скрывает поля, и отображает если выбран нужный вариант удовлетворяющий какому-то условию.
Править яваскрипт в модуле Hierarchical select, тоже не потяну. Яваскрипт я еще не знаю, на этой неделе только купил книгу с носорогом.
Итого что посоветуете? Может есть какой-нибудь еще модуль, который я упустил, и он позволяет реализовать описанную выше функциональность?

И вопрос номер два: нужно вывести сбоку от двух этих полей ссылку, которая позволит добавить два точно таких же поля ниже. Для того чтобы можно было выбрать несколько разных марок автомобилей с конкретными моделями.
Есть какие-нибудь идеи?

Как всегда, заранее благодарен за ответы.

Комментарии

Аватар пользователя ser_house ser_house 24 августа 2012 в 20:13

Такое с ajax делается на раз, вот пример (и хотя там динамические поля на форме для любой глубины, переделать их в два постоянно отображаемые — пара пустяков), а сбоку или снизу — css.

Аватар пользователя muaddip muaddip 24 августа 2012 в 23:48

Что самое интересное, именно этот пример и висит открытый у меня. Но вчитываться в код не стал.
Спасибо за подсказку, вчитаюсь внимательно, может пойму как решить.

Аватар пользователя divined divined 27 августа 2012 в 10:16

В целом по теме:

Вам придется писать свой модуль, который будет выводить вашу форму, добавляет ей событие валидации и отправки. Ну и в конце редирект на нужную страницу в зависимости от выбранных значений.

Это не сложно, стоит только начать.

Модуль на 5-6 функций.

Аватар пользователя muaddip muaddip 27 августа 2012 в 16:02

Эх... не писал я еще своих модулей. Тяжеловато немного разбираться в том же API Drupal, в основном из-за своей терминологии и моего плохого английского. Но ничего, пол дня уже читаю API Form - глядишь и замаячит свет в конце туннеля.
Главное начать )))

Аватар пользователя приятный приятный 17 декабря 2012 в 2:43

Как успехи?

Не думал кстати, может просто решить проблему автозаполнением?

И еще вопрос по ссылке (кнопке), добавляющей еще один автомобиль, получилось?

Аватар пользователя muaddip muaddip 19 декабря 2012 в 1:39

приятный wrote:
Как успехи?

Не думал кстати, может просто решить проблему автозаполнением?

И еще вопрос по ссылке (кнопке), добавляющей еще один автомобиль, получилось?

Над автозаполнением не думал. Поведение пользователя не предугадаешь, поэтому пусть лучше выбирает из готовых вариантов. Как пример зайди в форум здесь. и попробуй создать топик, внизу теги реализованы автозаполнением, и красные подписи с инструкциями красного цвета))) (Люди не читают инструкции, и надеяться на это не стоит).

Вообщем подразобрался в Form API и Field API, через Form API приходится переопределять уже созданную форму, то есть там в коде привязка к конкретной форме. Кнопку реализовать не сложно, проблема была в сохранении номера нажатия кнопки (добавить еще). Но ее решение подсмотрел в Field API в каком-то кастомном коде. Там просто создавали в form_state свой элемент массива, который можно было инкрементировать при каждом вызове, и таким образом сохранялся номер нажатия.

Через Field API сделал подобие полноценного модуля, можно добавлять через админ меню. Но там не со всеми тонкостями разобрался. Так как кнопку (добавить еще) уже предлагал интерфейс полей, и связанные поля с этой кнопкой у меня глючили. Также был глюк с использованием модуля с кастомным полем два и более раза в одной форме, для двух разных полей, с одинаковой функциональностью этих самых полей.

Итого грубо сделать работает, а если сделать полноценный модуль для поля, то подглючивает.

Аватар пользователя PZ2 PZ2 6 мая 2013 в 22:29

Все нормально, точно для того же прикрутил модуль Hierarchical select.
Получилось что заходишь в меню, выбираешь Марку, затем сбоку появляется окошко для выбора модели. Дальше это надо вывести как таблицу, использую Views. Но, когда пытаюсь сделать построение по моделям (от меньшей к большей), то она там не работает.
То есть более позднее добавление встает сниз и все, а не идет за такой же моделью.
Это там вообще возможно?