Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Drzewo kategorii
Forum PHP.pl > Forum > Bazy danych
programista28
Witam zalezy mi na zrobieniu dwupoziomowego drzewa kategorii Kategoria podkategorie ale tak abym np po wybraniu



ciasta
torty
---jednopietrowe
---dwupietrowe
---trzypietrowe
placki
ciasteczka


lub :



ciasta
torty
placki
ciasteczka
----okragle
----z kremem
----z cukrem
----z czekolada
wafelki



by po kliknieciu wyswietlaly sie podkategorie

PLIZ niech ktos mi pomoze

bo zupelnie nie wiem jak to ugryzsc tongue.gif
5k7
Rozumiem że chcesz aby Ci ktoś zrobił tą tabele do przechowywania oraz jakiś skrypt który będzie pobierał te dane odpowiednio je przetwarzał i wyświetlał wink.gif Równie dobrze mógłbyś poprosić aby ktoś Ci strunę ww zrobił wink.gif Odpal google i popracuj troche a jak będziesz miał bardziej konnkretne pytania to pisz, a na pewno ktoś Ci pomoże.
Kostek.88
Budujesz albo 2 tabele

kategorie:
-id
-nazwa
-opis (opcjonalnie)

podkategorie
-id
-nazwa
-opis (opcjonalnie)
-parent_id (to bedzie podlinkowanie podkategorii do ID dzialu)

Ew. 1 tabela:

kategorie
-id
-nazwa
-opis
-parent_id

jesli parent_id = 0, to kategoria jest najwyzej, w Twoim przypadku ciasta, torty, placki, ciasteczka. Niektorzy dodaja jeszcze pola left i right, co jest zdecydowanie wydajniejsze przy duzej ilosci dzialow, ale trudniejsze do wykonania.

A jak zrobic wyswietlanie? Po prostu, na listach:

  1. <ul>
  2. <li> kategoria 1</li>
  3. <li> kategoria 2</li>
  4. <li> kategoria 3
  5. <ul>
  6. <li>podkategoria 1</li>
  7. <li>podkategoria 2</li>
  8. <li>podkategoria 3</li>
  9. </ul>
  10. </li>
  11. <li> kategoria 4</li>
  12. </ul>
  13.  


Potem sobie ustawiasz display: none na wszystkie podkategorie i skryptem display: block w zaleznosci od klikniecia. Najlatwiej z jQuery, ale czysty JS tez da rade latwo zrobic.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.