![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 1 Dołączył: 7.08.2005 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję zrobić menu kategorii i podkategorii wyciąganych z bazy danych o strukturze
id_menu | nazwa | rodzic id_menu - wiadomo nazwa - wiadomo rodzic - id_menu rodzica Napisałem, działa i jest OK. Ale są na sztywno zaimplementowane 3 poziomy. Więc mam pytanie jak to napisać, żeby dynamicznie sam wyświetlał wszystkie menu i podmenu? Nawet w przypadku, kiedy będzie 20 podmenu? Efekt jaki chcę osiągnąć: 1 -1.1 -1.2 -1.3 --1.3.1 --1.3.2 --1.3.3 -1.4 2 -2.1 -2.2 3 4 5 -5.1 -5.2 Ale podmenu dopiero widoczne po kliknięciu. Wersja online znajduje się pod adresem www.iseasy.pl/menu.php A oto kod pisany "na sztywno".
Liczę na pomoc w rozwiązaniu tego problemu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Rekurencja to słowo klucz. Piszesz funkcję, która pobiera wszystkie podkategorie (1 poziom) należące do rodzica, czyli WHERE rodzic=$x. Główne kategorie powinny mieć rodzica ustawionego na NULL czyli startujesz od WHERE rodzic IS NULL. Następnie przelatujesz wybrane rekordy i wywołujesz rekurencyjnie funkcję jeszcze raz, tym razem jako parametr podając rodzica aktualnie iterowanego elementu. To w zasadzie tyle. DO tego odpowiednie umiejscowienie <ul> oraz <li> i osiągniecz oczekiwany efekt. Powodzenia!
PS: takie menu jak zaprezentowałeś w linku lepiej zrobić w JS wykorzystując kod wygenerowany przez PHP (na podstawie pomysłu podanego powyżej). Ten post edytował phpion 3.07.2008, 20:16:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 17:49 |