parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Каким образом вы реализуете "выбор категории при добавлении товара"?

kechinoff 29.01.2007 17:46

Т.е. ситуация такая.

Есть рубрикатор товаров со вложенными категориями. Т.е. у каждой категории может быть одна или несколько подкатегорий, в свою очередь у который также могут быть "дети". Пример: http://market.yandex.ru
Для примера, возьмем следующий набор категорий (вложения выделяются отступом - TAB):
КОМПЬЮТЕРЫ
	Настольные
		По-слабее
		По-мощнее
	Ноутбуки
		Большие
		Маленькие
	Серверы	
ТЕЛЕФОНЫ
	Мобильные
		Раскладушки
		Слайдеры
		Ни те ни другие
	Стационарные
		Радиотелефоны
		Простые, без наворотов
	Спутниковые
Вам нужно реализовать в админской части сайта возможность добавить товар. Помимо общий полей, типа "Название", "Описание", "Цена" есть еще параметр "Категория", который нужно указать при добавлении товара.

Если бы у нас не было вложенной структуры категорий, то все можно было бы решить простым выпадающим списком:
<SELECT>
	<OPTION value="1">Категория 1</OPTION>
	<OPTION value="2">Категория 2</OPTION>
	<OPTION value="3">Категория 3</OPTION>
</SELECT>
Но в том то и дело, что категории у нас разного уровня вложенности. Поэтому придется применять другой способ.

Я знаю 5 способов выбора категории в данном случае:

СПОСОБ 1

Создаем тот же выпадающий список SELECT, что и в самом начале, только при этом перечисляем и вложенные категории.
КОМПЬЮТЕРЫ
- Настольные
-- По-слабее
-- По-мощнее
- Ноутбуки
-- Большие
-- Маленькие
- Серверы	
ТЕЛЕФОНЫ
- Мобильные
-- Раскладушки
-- Слайдеры
-- Ни те ни другие
- Стационарные
-- Радиотелефоны
-- Простые, без наворотов
- Спутниковые
<SELECT>
	<OPTION value="1">КОМПЬЮТЕРЫ</OPTION>
	<OPTION value="14">- Настольные</OPTION>
	<OPTION value="28">-- По-слабее</OPTION>
	<OPTION value="29">-- По-мощнее</OPTION>
	<OPTION value="15">- Ноутбуки</OPTION>
	...
</SELECT>
СПОСОБ 2

Такой же, как и здесь http://www.irr.ru/addAdvert.do?rid=34&cid=1
Т.е. выпадающий список корневых категорий, выбираем в нем элемент, тут же JS добавляет следующий выпадающий список с подкатегориями выбранной категории и т.п., до тех пор, пока пользователь не выберет нужную ему категорию.

СПОСОБ 3

Похож на СПОСОБ 2, только в форме добавления товара есть скрытое поле формы, в котором должен храниться идентификатор категории и ссылочка «Выбрать категорию», а которую мы давим, выскакивает окошко, предлагающее выбрать катеорию, похоже на СПОСОБ 2, только когда наконец пользователь доходит до нужной ему категории, давить кнопку «Выбрать эту категорию» и идет JS запрос от окна выбора категории к окну, которое вызвало всплывающее окошко. Т.е. примерно как на этом форуме по парсеру выскакивает окно добавления ответа или темы, а после нажатия на кнопку «Добавить» идет обновление основной страницы форума.


СПОСОБ 4

Вид, как дерево папок в Проводнике в Windows. Выбор осуществляется с помощью <INPUT type="radio">. Сначала перечисляются корневые директории, а при щелчке по [+] раскрывается список внутренних подкатегорий. (о) - это <INPUT type="radio">
[-] (о) КОМПЬЮТЕРЫ
	[+] (о) Настольные
	[+] (о) Ноутбуки
	[+] (о) Серверы
[+] (о) ТЕЛЕФОНЫ
СПОСОБ 5

Ходим по рубрикатору и на каждой странице есть ссылочка, типа http://example.com/item_add.html?Category=126 пройдя по которой переходим в форму добавления товара, где в поле <INPUT type="hidden"> уже вписан идентификатор категории (126), остается заполнить оставшиеся поля по товару и все.

ВОПРОС

Может у кого-то есть способы лучше? Хотелось бы посмотреть, т.к. у каждого из этих способов есть свои недостатки. Может быть есть что-то более удобное.