Создание динамических полей в своем компоненте

  • 14 Ответов
  • 587 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Подскажите как добавлять динамические выпадающие списки?
Например есть 2 выпадающих списка, первый активен, а второй становится активен только после того как в первом выбрано какое-нибудь значение. Причем данные во втором списке должны подтягиваться в соответствии с таблицей связей с первым селектом.

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

Вообще таким образом я хочу реализовать схему зависимостей марок и моделей машин (но я думаю, что многие люди, при написании своего компонента, сталкивались с похожей задачей)
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Эм... может я что-то не так написал...
Вот есть файлы манифеста, где описываются различные типы полей на странице компонента. Можно также написать собственное поле. Ок.
Вопроса по сути два:
1. Как создать выпадающий список, который бы зависел от значений, выбранных в другом выпадающем списке?
2. Как создать тип поля: выпадающий список со встроенным окном поиска по этому списку?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

gaalferov

  • Осваиваюсь на форуме
  • ***
  • 75
  • 9
  • Всё будет хорошо ;)
Тут только jQuery в помощь.
Вот плагин селекта, который со встроенным поиском https://select2.github.io/examples.html
А именно подгрузку второго делаете по событию onchange на первом селекте.


p.s .в принципе ничего сложного, если нормально знаете jQuery. Ну и Google конечно в помощь, где-то уже должны быть примеры

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
да я в принципе не раз реализовывал зависимые селекты (но во фронтенде).
Тут просто свои приколы в административной части с этими файлами манифеста и т.п. Вот хотел узнать о способе, который бы не являлся "костыльным"
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Вот плагин селекта, который со встроенным поиском https://select2.github.io/examples.html
То, что надо! Большое спасибо!
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
А причем тут файлы манифеста? Вся логика все равно находится в Вашем типе поля.
Ну получается мне нужно просто создавать свои собственные типы полей для каждого динамического селекта?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Спасибо за советы, буду пробовать
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
И еще сюда же вопрос. В самом начале при загрузке страницы у меня для некоторых селектов стоит disabled
$('select[id^="jform_city"]').attr('disabled', true);

потом после получения AJAX success я убираю disabled
$('#jform_city_from]').attr('disabled', false);

Но т.к. селект кастомный (формировался при помощи стандартного поля JHTML::_('select.option') ) то он "не включается" обратно...
т.е. остается неактивным. Как можно его снова включить и загрузить в него результаты из аякса?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

Arkadiy

  • Группа развития
  • *****
  • 5342
  • 440
  • Крепитесь, други.
Не путайте фронтэнд с бэкендом, тобищь php с javascript, JHTML::_('select.option') задает только начальные значения при загрузке страницы, после они меняются с помощью javascript.

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Не путайте фронтэнд с бэкендом, тобищь php с javascript, JHTML::_('select.option') задает только начальные значения при загрузке страницы, после они меняются с помощью javascript.
Да я не путаю, видимо некорректно выразился... Вопрос собственно в том, как переинициализировать кастомный селект по success в AJAX ?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу

*

NeuroZ

  • Осваиваюсь на форуме
  • ***
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Спасибо! Получилось :)

p.s. А как Вы узнали, что нужно вызвать именно такой триггер "liszt:updated" ? Как самостоятельно узнавать о том какие триггеры доступны в конкретных случаях? Или это документация бутстрап?
« Последнее редактирование: 18.08.2015, 13:17:00 от NeuroZ »
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть

*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
Спасибо! Получилось :)

p.s. А как Вы узнали, что нужно вызвать именно такой триггер "liszt:updated" ? Как самостоятельно узнавать о том какие триггеры доступны в конкретных случаях? Или это документация бутстрап?
Google ;)

Запрос по chosen update select сразу выводит на ответ. Сам так искал в свое время.