Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форма присвоения места в каталоге
 
 автор: Dizels   (23.05.2008 в 16:54)   письмо автору
 
 

Есть форма в которой мы добавляем сайт, при этом нужно указать его месторасположение в каталоге. Каталог - многоуровневый(притом вложенность неограничена).
Каким образом в форме сделать выбор места в каталоге для этого самого сайта?

Т.е. к примеру есть каталог:
Музыка
---поп-музыка
---рок-музыка
--------еще что-то
--------еще что-то
---металл
Фильмы
и т.д.

и вот подскажите каким образом сделать форму добавления сайта, если сразу не известно - какой максимальной вложенности будет каталог.

   
 
 автор: sim5   (23.05.2008 в 17:27)   письмо автору
 
   для: Dizels   (23.05.2008 в 16:54)
 

Как это добавить сайт? Может добавить в коллекцию ссылок ссылку на сайт? А с формой какие могут быть проблемы, у вас категории должны быть определены в базе, выбираете из базы эти категории, формируя их дерево, ну а дальше выдаете пользователю список, выбор которого (ых) и будет определять куда отнести это добавление. Если подходящей категории нет, то либо дать возможность добавлять пользователю новую, либо помещать в "нейтральную" - Другое.

   
 
 автор: Dizels   (23.05.2008 в 17:38)   письмо автору
 
   для: sim5   (23.05.2008 в 17:27)
 

а как формировать дерево категорий?

Просто у меня в голове почему-то упорно сидела мысля по реализации наподобии этой:

Каталог: <select name ='category'>
<option value=0>берем из базы главные каталоги</option>
</select>

Подкаталог: <select name ='category_2'>
<option value=0>берем из базы подкаталоги выбранного главного каталога</option>
</select>


И вот собственно здесь то и возникал вопрос - как решить проблему того, что неизвестна вложенность.

А по поводу "дерева" - можно какой-нибудь пример кода привести?

   
 
 автор: sim5   (23.05.2008 в 17:50)   письмо автору
 
   для: Dizels   (23.05.2008 в 17:38)
 

Если у вас будут правильно организованы записи в таблице, то вы всегда будете знать это дерево. Записи должны иметь такую структуру:
id - номер каталога
parent - родитель каталога
name - название каталога
descript - краткое описание каталога
..... - плюс возможны другие полезные поля
У корневого каталога номер родитеоя всегда равен 0, а у остальных каталогов он равен номеру id вышележащего по уровню каталога. Зная это, вы всегда можете получить списки каталогов соответствующего уровня, такие, какие вы написали.
Все так и делается, как вы и хотите - либо постепенно выводя каждый новый список каталогов, либо, что лучше, организовать динамические списки на JS, либо используя технологию AJAX. Если последнее вас пугает, посмотрите этот пример. Это делает то же самое, что и AJAX, но намного компактнее, без кофликтов, очень простое для понимания и реализации.

   
 
 автор: Dizels   (23.05.2008 в 18:09)   письмо автору
 
   для: sim5   (23.05.2008 в 17:50)
 

По поводу базы каталогов - это я знаю, она у меня по такому принципу и построенна. У меня вызывает затруднение само построение "дерева", т.е. сам коддинг (я в php не особо силен).

По поводу AJAX - прочитал Вашу ссылку, уверен на 95% что это то, что мне нужно :)
Вот только все равно - может поделитесь еще каким-нибудь кодом, применимым именно к моей ситуации, хотя бы отдаленно, а то из того примера многое не ясно. К примеру, каким образом делать запоминание того, что выбрано в 1 форме, если у меня еще куча других данных, получается обновлять страницу нельзя.
Вообщем я уже немного запутался - просьба разъяснить.

   
 
 автор: mihdan   (23.05.2008 в 18:08)   письмо автору
 
   для: Dizels   (23.05.2008 в 16:54)
 

http://tigir.com/javascript_select.htm

   
 
 автор: Dizels   (23.05.2008 в 18:15)   письмо автору
 
   для: mihdan   (23.05.2008 в 18:08)
 

mihdan, спасибо, но тут как раз возникает проблема того, что вложенность может быть больше.

   
 
 автор: mihdan   (23.05.2008 в 18:17)   письмо автору
 
   для: Dizels   (23.05.2008 в 18:15)
 

Тогда выведите это просто в селект (через рекурсию) а вложенность покажите отступами от родителя дайте селекту размер 10 и впуть

каталог1
  подкаталог1
  подкаталог2
         подкаталог2.1
  подкаталог3
каталог2

   
 
 автор: Dizels   (23.05.2008 в 18:23)   письмо автору
 
   для: mihdan   (23.05.2008 в 18:17)
 

Ок, вот это как раз то "дерево" про которое говорилось выше, насколько я понял :)
А как вот эту самую рекурсию сделать? Подскажите, плз.

   
 
 автор: mihdan   (23.05.2008 в 18:26)   письмо автору
 
   для: Dizels   (23.05.2008 в 18:23)
 

http://forum.woweb.ru/topic26915.html
http://www.marketer.ru/node/1934

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования