Биллинговая система Nodeny
23 Ноября 2024, 09:52:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: rev 337. Зависимые выпадающие списки  (Прочитано 8129 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« : 31 Июля 2015, 00:24:57 »

UPDATE: Внимание. Теперь делается проще (значения добавляются прямо в данных абонента) http://nodeny.com.ua/wiki/index.php/%D0%97%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D1%8B%D0%B5_%D0%B2%D1%8B%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B8


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

Естественно, такое можно сделать не только для города и улицы, а, например, пол абонента и список имен (женских или мужских) - как пример.

Настраивается так:

  • Поле "город": имя в базе данных _adr_city, тип = выпадающий список,  тип объекта = city
  • Поле "улица": имя в базе данных _adr_street, тип = выпадающий список,  тип объекта = _adr_city:street
  • Создаем объекты city: ключ "kiev" -> значение "Киев", "lviv" -> "Львов" и т.д.
  • Создаем объекты street: ключ "kiev:1" -> значение "Прорезная", "kiev:2" -> "Героев Днепра", "lviv:1" -> "Армянская" и т.д.


На что обратить внимание: ключ в объекте city и ключ в объекте street должны быть одинаковыми, один в один, если хотите - можете города написать с большой буквы, но это всего-лишь ключи в базе. Двоеточие тоже обязательно. После него можно хоть число, хоть имя в латинице - это ключ в базе, как я уже сказал.

Тип объекта _adr_city:street означает: поле зависит от поля с именем _adr_city, а данные для выпадающего списка берутся из объектов street.

Обновились js файлы - возможно придется скопировать вручную у кого нет симлинка на папку htdocs.

Каскадную зависимость: поле1 зависит от поля 2, а то в свою очередь от поля 3, я еще не тестировал. Интересно, что получится. По идее должно работать

« Последнее редактирование: 20 Июня 2017, 10:57:26 от Efendy » Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #1 : 10 Августа 2015, 15:07:16 »

а есть что-то типа скриптика для перехода? просто сейчас город - это отдельная группа..
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #2 : 10 Августа 2015, 16:29:10 »

sql запросы - это пойдет взамен скриптов.

Код:
update data0 set _adr_city='kiev' where uid in(select id from users where grp=номер группы);

Код:
update users set grp=новый номер группы where grp=старый номер группы

Предварительно сделать бекап
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #3 : 10 Августа 2015, 21:34:55 »

sql запросы - это пойдет взамен скриптов.
Спасибо, вроде бы получилось.
а при таком раскладе возможно переделать услуги?. Т.к сейчас все клиенты в одной группе, нужно сделать, чтоб для каждого города был свой набор услуг.
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #4 : 12 Августа 2015, 14:30:47 »

Код:
update data0 set _adr_city='kiev' where uid in(select id from users where grp=номер группы);

Код:
update users set grp=новый номер группы where grp=старый номер группы
А возможно еще как-то перенести улицы?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #5 : 12 Августа 2015, 15:49:02 »

как они оформлены?
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #6 : 13 Августа 2015, 09:13:29 »

как они оформлены?
доп.поле: _adr_street_gromovka (выпадающий список), Тип объекта: street_gromovka, далее улицы прописаны в Объектах street_gromovka.. (отображается для клиентов группы Громовка)
и таких групп в районе 10, со своим набором улиц
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #7 : 13 Августа 2015, 10:13:17 »

Бекап. Потом

Код:
update dictionary set k=concat('gromovka:',k), type='_adr_street' where type='_adr_street_gromovka';
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #8 : 13 Августа 2015, 14:23:33 »

Бекап. Потом

Код:
update dictionary set k=concat('gromovka:',k), type='_adr_street' where type='_adr_street_gromovka';
Спасибо, только чуток изменить пришлось
Код:
update dictionary set k=concat('gromovka:',k), type='street' where type='street_gromovka';
Только чего-то не хватает, когда открываю клиента, вот что пишет:
Код:
Админу: нет ни одного объекта типа street_gromovka
, а поле Улица осталось пустым... как-то можно чтоб клиенту заново старые улицы присвоились?
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #9 : 13 Августа 2015, 15:53:36 »

Код:
update data0 set _adr_street = _adr_street_gromovka where _adr_street_gromovka<>''
не помогло.
mysql> update data0 set _adr_street = _adr_street_gromovka where _adr_street_gromovka<>'';
Query OK, 45 rows affected (0.01 sec)
Rows matched: 45  Changed: 45  Warnings: 0
у клиентов перед полем улица предупреждение:
Необходимо выбрать одно из значений
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #10 : 13 Августа 2015, 18:08:49 »

Код:
update data0 set _adr_street = concat('gromovka:', _adr_street_gromovka) where _adr_street_gromovka<>''
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #11 : 14 Августа 2015, 08:54:13 »

Большое спасибо! все получилось.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!