Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Zmiana wartości pola seleck drugim selectem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Lombi
Witajcie,

Wypociłem takie coś:

  1. <script type="text/javascript">
  2. function zamiana(wartosc)
  3. {
  4. var aa = new Array('aa1','aa2');
  5. var bb = new Array('bb1','bb2');
  6. if(wartosc == 'a1') {
  7. document.formularz.elements.drugi.options.length = aa.length;
  8. for(var i=0;i<aa.length;i++) {
  9. document.formularz.drugi.options[i] = new Option(aa[i]);
  10. document.formularz.drugi.options[i].value = aa[i];
  11. }
  12. }
  13. }
  14.  
  15. <form name="formularz">
  16. <select name="pierwszy" onChange="zamiana(this.value);">
  17. <option value="a1">1a
  18. <option value="a2">2a
  19. <option value="a3">3a
  20. <select name="drugi">
  21. <option value="b1">1b
  22. <option value="b2">2b
  23. <option value="b3">3b
  24. </form>


Właściwie to wygrzbałem w googlach smile.gif Ale do rzeczy:
Ten kod dziala dobrze tyle że ciągle trzeba powtarzac funkcje if dla wartości a2, a3 itd.

  1. <script type="text/javascript">
  2. function zamiana(wartosc)
  3. {
  4. var aa = new Array('aa1','aa2');
  5. var bb = new Array('bb1','bb2');
  6. if(wartosc == 'a1') {
  7. document.formularz.elements.drugi.options.length = aa.length;
  8. for(var i=0;i<aa.length;i++) {
  9. document.formularz.drugi.options[i] = new Option(aa[i]);
  10. document.formularz.drugi.options[i].value = aa[i];
  11. }
  12. }
  13. if(wartosc == 'a2') {
  14. document.formularz.elements.drugi.options.length = bb.length;
  15. for(var i=0;i<bb.length;i++) {
  16. document.formularz.drugi.options[i] = new Option(bb[i]);
  17. document.formularz.drugi.options[i].value = bb[i];
  18. }
  19. }
  20. }


Mam dużą ilosć tych tablic i nie chce za kazdym razem pisać tego if-a! Ma ktoś pomysł jak to zrobić na jakiejś zmiennej?
Cienki1980
Jeżeli dane w tych selectach będą statyczne, bądź też rzadko będą się zmieniały możesz wyprodukować coś na podstawie kodu który jest na tej stronie.

Jeżeli jednak selecty będą się tworzyły na podstawie danych zmieniających się .. polecam wykorzystanie AJAXA do zmiany drugiego selecta w przypadku zmiany wartości w selecie numer1.
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.