Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]listy select zeleżne od siebie
Forum PHP.pl > Forum > Przedszkole
Krismen
Witam, próbuje stworzyć dwie listy rozwijalne zależne od siebie. Problem w tym że kiedy wybiorę markę w pierwszej liście w drugiej nie pokazują mi się wszystkie modele tylko ostatni z wybranej tablicy. Problem chyba tkwi w tym że użyłem funkcji html, która przy każdym przejściu przez pętle zastępuje mi daną wartość i zostaje tylko ostatnia. Zamiast html próbowałem też użyć funkcji append ale wtedy opcje na liście się powtarzają. Czy ktoś mi może doradzić jak to zrobić ?

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. <script type="text/javascript" src="js/jquery.js"> </script>
  3. <script type="text/javascript">
  4.  
  5. var tables=new Array();
  6.  
  7. tables['fiat']=new Array();
  8. tables['opel']=new Array();
  9.  
  10. tables['opel'][0]=('corsa');
  11. tables['opel'][1]=('astra');
  12. tables['opel'][2]=('vectra');
  13.  
  14. tables['fiat'][0]=('multipla');
  15. tables['fiat'][1]=('brava');
  16.  
  17. for(index in tables)
  18. {
  19. $('#marka').append('<option>' +[index] +'</option>');
  20. }
  21.  
  22. $('#marka').change(function(){
  23.  
  24. var wybrana_marka=$('#marka').val();
  25.  
  26. for(i=0; i<tables[wybrana_marka].length; i++)
  27. {
  28. $('#model').html('<option>' +tables[wybrana_marka][i] +'</option>');
  29. }
  30. })
  31.  
  32. </script>
  33.  
[JAVASCRIPT] pobierz, plaintext



Dodaje link do strony:

link

Będę wdzięczny za pomoc.





PtasiorZz
Funkcja .html() podmienia wszystko co znajduje się w obrębie określonego elementu.
Poprawiony kod(+ kilka poprawek estetycznych cool.gif )

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. $('#model').hide();
  3.  
  4. var tables=new Array();
  5.  
  6. tables['fiat']=new Array();
  7. tables['opel']=new Array();
  8.  
  9. tables['opel'][0]=('corsa');
  10. tables['opel'][1]=('astra');
  11. tables['opel'][2]=('vectra');
  12.  
  13. tables['fiat'][0]=('multipla');
  14. tables['fiat'][1]=('brava');
  15.  
  16. for(a in tables)
  17. {
  18. $('#marka').append('<option>' +[a] +'</option>');
  19. }
  20.  
  21. $('#marka').change(function(){
  22.  
  23. var wybrana_marka=$('#marka').val();
  24. $('#model').html('');
  25. if(wybrana_marka=='Wybierz markę')
  26. {
  27. $('#model').hide();
  28. $('#model').html('');
  29. }
  30. else
  31. {
  32. $('#model').show();
  33. for(i=0; i<tables[wybrana_marka].length; i++)
  34. {
  35. var oldhtml = $('#model').html();
  36. $('#model').html(oldhtml + '<option>' +tables[wybrana_marka][i] +'</option>');
  37. }
  38. }
  39.  
  40.  
  41. })
  42.  
  43.  
  44. </script>
[JAVASCRIPT] pobierz, plaintext
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.