![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Próbuje zrobić wybór kategorii zależny od wyboru poprzedniego selecta. Mam formularz:
i ajax:
takie coś ładuje mi ładnie podkategorie zależne od wyboru kategorii głównej. Problem w tym, że te podkategorie mają jeszcze swoje podkategorie i wtedy jak pojawi mi się drugi select to już nie ładuje dalej po wyborze jakiejś opcji :/ tak samo drugi select (ten który się pojawił) nie reaguje już naawet na:
W select.php tworzę sobie ten select a opcje do niego pobieram z bazy... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 14.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
no tak, przez appenda dopisujesz ciągle nową treść, w takim przypadku rozwiązałbym to numerowaniem poziomu kategorii w selectach, np:
kategoria główna = lvl 1 podkategoria = lvl 2 podkategoria podkategorii = lvl 3 Zaczynając od założenia zmiennej globalnej w kodzie JS: var max_levels=1; // 1 jak tylko główna kategoria jest zaladowana, każde rozwinięcie spowoduje inkrementację o +1 wymaga też to zmodyfikowania trochę HTMLa dla znacznika select, dodaj atrybut lvl z najnizszym poziomem (w naszym przypadku 1)
kazdy kolejny select generowany przez skrypt powinien miec zwiekszany atrybut lvl o 1 (az do poziomu maksymalnego danej kategorii), czyli wstawiamy selecta appendem, odnajdujemy ostatnio dodanego w tym divie i zmieniamy jego atrybut lvl uprzednio zwiększając zmienną max_levels o 1; u ciebie w kodzie będzie to chyba w tym miejscu:
modyfikujemy też odpowiednio funkcję binder i dodajemy funkcję usuwającą niepotrzebne podkategorie
mam nadzieję, że działa bo tak na sucho ciężko się pisze i nie wiadomo czy gdzieś byka nie postawiłem : ) ale chyba najważniejsze, żebyś załapał logikę a na pewno sobie poradzisz Ten post edytował freewalker 17.02.2015, 23:52:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 16:30 |