Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zależność zawartości pól w formularzu
Forum PHP.pl > Forum > Przedszkole
Lopmer
Mam mały problemik z pewną sprawą. Otóż chciałbym otrzymać coś w rodzaju zależności jednego pola select od drugiego w formularzu.
Załóżmy, że formularz ma za zadanie poprosić użytkownika o wybranie 2 rzeczy: dla przykładu godziny przyjazdu i godziny odjazdu. Wybiera sobie za pomocą zwykłego <select> mając w <option> poszczególne godziny (dla uproszczenia tylko okrągłe, bez uwzględnienia minut i sekund - wiadomo, wtedy select nie miałby sensu. Pobieram tablicę zawierającą wszystkie godziny {jest ich 8 więc nie widzę tutaj innej opcji}). Chciałbym uzyskać taki efekt, że po wybraniu załóżmy w 1 polu godziny 8:00 nie mogę wybrać godziny wcześniejszej w drugim. Analogicznie w drugą stronę: po wybraniu godziny np. 6 w drugim polu nie mogę wybrać późniejszej w pierwszym.

Z góry dzięki za wszelkie wskazówki.


Fifi209
To raczej w javascript ;]

Zdarzenie onchange na pierwszy select, potem nadajesz mu disabled a w drugim odpowiednio zmieniasz "wybór".
celbarowicz
a jak wybierzesz w drugim selekcie ostatnią pozycję to co wybierzesz w pierwszym?
do rzeczy.
mając na pierwszej liście godziny od 0 ...do 23 , możesz wybrać dowolną z tych godzin, po wybraniu pola z pierwszego selekta, drugi selekt pokazuje tylko godziny- liczby większe od wybranej poprzednio(drugi selekt w początkowych ustawieniach powinien mieć zakres od 1 do 24. w php nie ma problemu trochę trudnie zrobić to w JS.(drugi selekt nie powinien ograniczać pierwszego).
jak są dalsze pytania zgłoś się na PW.

sądziłe ,że pochwalisz się wynikami. ja zrobiłem TAK,ale to i tak ada się chyba na nic.
  1. <html>
  2. <head>
  3.  
  4. <script language="javascript" type="text/javascript">
  5.  
  6.  
  7. function dlugim(mm) { r=document.getElementById('odjazd').value;
  8.  
  9. r=eval(r);
  10.  
  11. p=document.getElementById('przyjazd').length=25-r;
  12.  
  13. document.getElementById('przyjazd').options[0].value='wybierz';
  14. document.getElementById('przyjazd').options[0].text='wybierz';
  15.  
  16. for(i=1;i<=p;i++){k=r+i;
  17.  
  18. document.getElementById('przyjazd').options[i].value=k;
  19. document.getElementById('przyjazd').options[i].text=k;
  20.  
  21. }
  22.  
  23. }
  24.  
  25.  
  26.  
  27. </script>
  28.  
  29. </head>
  30.  
  31. <body>
  32.  
  33. <SELECT name="odjazd" id="odjazd" size="1"onchange="dlugim();" > <?php $se=''; for($i=0;$i<=24;$i++){
  34. print '<option value='.$i.' '.$se.'>'.$i. '</option>';
  35. }
  36. ?>
  37. </select>
  38.  
  39. <SELECT name="przyjazd" id="przyjazd" size="1" onchange=""> <?php for($i=1;$i<=24;$i++){
  40. print '<option value='.$i.' '.$se.'>'.$i.'</option>';
  41. }
  42. ?>
  43.  
  44. </select>
  45.  
  46.  
  47. <br>
  48.  
  49. </body>
  50. </html>
  51.  
  52.  
  53.  
  54.  
  55.  

odezwij się człowieku

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.