Форум русской поддержки Joomla!® CMS
04.12.2016, 18:21:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 417 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« : 31.07.2015, 17:26:26 »

Подскажите как добавлять динамические выпадающие списки?
Например есть 2 выпадающих списка, первый активен, а второй становится активен только после того как в первом выбрано какое-нибудь значение. Причем данные во втором списке должны подтягиваться в соответствии с таблицей связей с первым селектом.

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

Вообще таким образом я хочу реализовать схему зависимостей марок и моделей машин (но я думаю, что многие люди, при написании своего компонента, сталкивались с похожей задачей)
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #1 : 04.08.2015, 10:35:47 »

Эм... может я что-то не так написал...
Вот есть файлы манифеста, где описываются различные типы полей на странице компонента. Можно также написать собственное поле. Ок.
Вопроса по сути два:
1. Как создать выпадающий список, который бы зависел от значений, выбранных в другом выпадающем списке?
2. Как создать тип поля: выпадающий список со встроенным окном поиска по этому списку?
Записан
gaalferov
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 74


Всё будет хорошо ;)


« Ответ #2 : 04.08.2015, 10:57:52 »

Тут только jQuery в помощь.
Вот плагин селекта, который со встроенным поиском https://select2.github.io/examples.html
А именно подгрузку второго делаете по событию onchange на первом селекте.


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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #3 : 04.08.2015, 11:16:19 »

да я в принципе не раз реализовывал зависимые селекты (но во фронтенде).
Тут просто свои приколы в административной части с этими файлами манифеста и т.п. Вот хотел узнать о способе, который бы не являлся "костыльным"
Записан
b2z
Support Team
*****

Репутация: +708/-0
Online Online

Пол: Мужской
Сообщений: 7517


Разраблю понемногу


« Ответ #4 : 04.08.2015, 11:22:08 »

А причем тут файлы манифеста? Вся логика все равно находится в Вашем типе поля.
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #5 : 04.08.2015, 11:23:24 »

Вот плагин селекта, который со встроенным поиском https://select2.github.io/examples.html
То, что надо! Большое спасибо!
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #6 : 04.08.2015, 11:24:54 »

А причем тут файлы манифеста? Вся логика все равно находится в Вашем типе поля.
Ну получается мне нужно просто создавать свои собственные типы полей для каждого динамического селекта?
Записан
b2z
Support Team
*****

Репутация: +708/-0
Online Online

Пол: Мужской
Сообщений: 7517


Разраблю понемногу


« Ответ #7 : 04.08.2015, 11:25:09 »

Ну получается мне нужно просто создавать свои собственные типы полей для каждого динамического селекта?
Конечно.
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #8 : 04.08.2015, 12:40:03 »

Спасибо за советы, буду пробовать
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #9 : 14.08.2015, 17:16:51 »

И еще сюда же вопрос. В самом начале при загрузке страницы у меня для некоторых селектов стоит disabled
$('select[id^="jform_city"]').attr('disabled', true);

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

Но т.к. селект кастомный (формировался при помощи стандартного поля JHTML::_('select.option') ) то он "не включается" обратно...
т.е. остается неактивным. Как можно его снова включить и загрузить в него результаты из аякса?
Записан
Arkadiy
Группа развития
*****

Репутация: +431/-0
Offline Offline

Пол: Мужской
Сообщений: 5313


Крепитесь, други.


« Ответ #10 : 14.08.2015, 22:53:37 »

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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #11 : 17.08.2015, 10:24:55 »

Не путайте фронтэнд с бэкендом, тобищь php с javascript, JHTML::_('select.option') задает только начальные значения при загрузке страницы, после они меняются с помощью javascript.
Да я не путаю, видимо некорректно выразился... Вопрос собственно в том, как переинициализировать кастомный селект по success в AJAX ?
Записан
b2z
Support Team
*****

Репутация: +708/-0
Online Online

Пол: Мужской
Сообщений: 7517


Разраблю понемногу


« Ответ #12 : 17.08.2015, 11:25:50 »

Нужно еще обновить бутстраповский select

Код
$('select[id^="jform_city"]').trigger("liszt:updated");
Записан
NeuroZ
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 129


Разработка сайтов и J! расширений под ключ


« Ответ #13 : 18.08.2015, 11:53:09 »

Спасибо! Получилось Azn

p.s. А как Вы узнали, что нужно вызвать именно такой триггер "liszt:updated" ? Как самостоятельно узнавать о том какие триггеры доступны в конкретных случаях? Или это документация бутстрап?
« Последнее редактирование: 18.08.2015, 12:17:00 от NeuroZ » Записан
b2z
Support Team
*****

Репутация: +708/-0
Online Online

Пол: Мужской
Сообщений: 7517


Разраблю понемногу


« Ответ #14 : 18.08.2015, 12:17:59 »

Спасибо! Получилось Azn

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

Запрос по chosen update select сразу выводит на ответ. Сам так искал в свое время.
« Последнее редактирование: 18.08.2015, 12:22:58 от b2z » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet