Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js]zależne listy rozwijane
Forum PHP.pl > Forum > PHP
ublizzard
Potrzebuję zrobić dwie listy rozwijane formularza, z których możliwości wyboru jednej listy są uzależnione od wyboru drugiej.
Konkretnie z jednej listy wybieramy Kategorię, a z drugiej listy Podkategorię.
Znalazłem taki prosty skrypt w necie:
  1. <script type="text/javascript">
  2. function List(x,y,i,t){
  3. var O={
  4. 'a':{'c':'C','d':'D','e':'E'},
  5. 'b':{'f':'F','g':'G','h':'H'},
  6. 'c':{'i':'I','j':'J','k':'K','l':'L'}
  7. }
  8. while(y[0])y.remove(0)
  9. for(i in O[x])y[y.length]=new Option(O[x][i],i)
  10. }
  11. </script>
  12. <form>
  13. <select name="kategorie" onchange="List(this.value,this.form.podkategorie)">
  14. <option value="a">A</option>
  15. <option value="b">B</option>
  16. </select>
  17. <select name="podkategorie">
  18. <option value="c">C</option>
  19. <option value="d">D</option>
  20. <option value="e">E</option>
  21. </select>
  22. </form>


Tylko zastanawia mnie, czy taki skrypt ma sens w przypadku, gdy spisy Kategorii i Podkategorii będą pobierane z bazy mysql i czy on sobie poradzi, gdy Kategorii będzie 20, a każda z nich będzie miała powiedzmy po 10 podkategorii.
Shili
Poradzi sobie z palcem w nosie, nawet przy wygenerowaniu całej tablicy tak jak w powyższym przykładzie od razu.
200 elementów do wyciągnięcia z bazy to praktycznie nic, chyba że bardzo się postarasz żeby to zamotać ^^

Drugim rozwiązaniem jest ajaks - na początek masz same kategorie w jednym select.
Po wybraniu kategorii (zdarzenie onchange, jak powyżej) idzie zapytanie ajaksowe do odpowiedniego pliku php, który robi zapytanie do bazy i zwraca podkategorie.
Jest to zdecydowanie wygodniejsze, jeśli kategorie mogą się rozrosnąć.
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.