Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Последовательный выбор в селект боксах (https://javascript.ru/forum/jquery/49219-posledovatelnyjj-vybor-v-selekt-boksakh.html)

Art!P 03.08.2014 14:51

Последовательный выбор в селект боксах
 
Так... как бы объяснить :write:
HTML-форма, нужно выбрать поле "каталог" это 3-хуровневое дерево из базы могу выгрузить в виде:
1, 'Arts', '/arts/'
2, 'Animation','/arts/animation/'
3, 'Anime', '/arts/animation/anime/'
3, 'Artists', '/arts/animation/artists/'
1, 'Business', '/business/'
2, 'Accounting', '/business/accounting/'
3, 'Associations', '/business/accounting/associations/'
3, 'Business-to-Business', '/business/accounting/business-to-business/'
...
первое это уровень ветки в дереве их всего 3. 1- это каталог, 2 - подкаталог, 3 - подкаталог подкаталога.
Второе название ветки. Третье URI.


Хочу 3 селект бокса (cat1,cat2,cat3), где первый бокс начальный. Осуществляется последовательный выбор ветки. То есть в боксы загружены ветки от 1 до 3-его в соответствии с их уровнем, в первый бокс записи с уровнем "1", второй бокс "2", третий бокс с уровнем "3". В зависимости от выбора работает фильтр который оставляет только дочерние ветки. При выборе в селект боксе ветка загружается заново и "фильтруется". Тут видимо фильтр должен быть в регекс (sort()).

Моя не очень хорошо понимать JS, шуть шуть знаю JQuery. Подозреваю, что дерево предварительно должно быть загружено с помощью JSON или GET в массив. Записей немного, тысяч 7.
А может этот велек есть уже, но найти не смог. Может кто знает?

рони 03.08.2014 16:09

Art!P,
поиск по "зависимые селекты"

ksa 04.08.2014 15:29

Цитата:

Сообщение от Art!P
из базы могу выгрузить в виде:
1, 'Arts', '/arts/'
2, 'Animation','/arts/animation/'
3, 'Anime', '/arts/animation/anime/'
3, 'Artists', '/arts/animation/artists/'
1, 'Business', '/business/'
2, 'Accounting', '/business/accounting/'
3, 'Associations', '/business/accounting/associations/'
3, 'Business-to-Business', '/business/accounting/business-to-business/'

Плохой вариант... :nono:
Если выгружать так уже вот так

var obj=[
	{
		name: 'Arts',
		dir: '/arts/',
		child: [
			{
				name: 'Animation',
				dir: '/arts/animation/',
				child: [
					{
						name: 'Anime', 
						dir: '/arts/animation/anime/'
					},
					{
						name: 'Artists', 
						dir: '/arts/animation/artists/'
					}
				]
			}
		]
	},
	{
		name: 'Business',
		dir: '/business/',
		child: [
			{
				name: 'Accounting',
				dir: '/business/accounting/',
				child: [
					{
						name: 'Associations', 
						dir: '/business/accounting/associations/'
					},
					{
						name: 'Business-to-Business', 
						dir: '/business/accounting/business-to-business/'
					}
				]
			}
		]
	}
];

Т.о. можно будет сразу работать с данными на странице...


Часовой пояс GMT +3, время: 15:17.