Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wybór jednego formularza uaktywni wybór drugiego
Forum PHP.pl > Forum > PHP
bjen
Witam.
Mam następujący problem. Chciałbym stworzyć formularz, w którym mam dwa drop-down listy. Gdy wybiorę jakąś wartość z pierwszej, chciałbym, żeby ukazała się druga pod nią, w zależności od dokonanego wyboru pierwszej. Jak to sprytnie zrobić?

Czyli:
Wybieram jakąś wartość z pierwszej listy rozwijanej... po czym pod nią ukazuje się druga w zależności od dokonanego wyboru.

Przekazać do tej samej strony poprzez form method "post" wartość pierwszej i uaktywnić drugą? Czy da się np. jakoś odświeżyć stronę i ukazać druga liste rozwijaną , gdy wybiorę coś z pierwszej ?

Z góry dziękuje za pomoc!
darko
Ogólnie do pierwszego formularza podczepiasz w selektorze onchange="twojaFunkcja(this.value)" a w funkcji odwołując się po ID drugiego formularza ustawiasz odpowiednie wartości poszczególnych pozycji w drugiej liście.
bjen
Rozumiem. Tak zrobiłem, lecz po wybraniu nie widzę żadnego rezultatu. Mój kod:

  1. function wyswietlDropDownList($nazwa, $listaOpcji) {
  2.  
  3. echo '<select name="'.$nazwa.'" onclick="wyswietlPojemnosc(this.value)">';
  4. foreach ($listaOpcji as $rzad) {
  5. echo '<option value='.$rzad['nazwa'].'>'.$rzad['nazwa'].'</option>';
  6. }
  7. echo '</select>';
  8.  
  9. }
  10.  
  11. function wyswietlPojemnosc($nazwa)
  12. {
  13. echo $nazwa;
  14. }


Po wyborze w liście rozwijanej nie widzę żadnej reakcji (nic sie nie dzieje). Widzicie może błąd ?
darko
omg funkcja wyswietlPojemnosc ma być napisana w javascripcie ohno-smiley.gif
bjen
A można by to jakoś obejść ?
Chciałbym aby onchange (czy onclick) odpalił bliźniaczką funkcję do wyswietlDropDownList napisaną w php. Jest taka możliwość ? smile.gif
darko
Oczywiście, że jest:

...

onchange="wyswietlPojemnosc(this.value)"

...
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. function wyswietlPojemnosc(v) {
  3. window.location.href = 'www.example.com?value=' + v;
  4. }
  5. </script>
[JAVASCRIPT] pobierz, plaintext

Odbędzie się to poprzez przekierowanie na tę samą stronę z wybranym parametrem value, który będzie dostępny w skrypcie php pod postacią $_GET['value']
W praktyce taką operację powinno wykonać się bez przekierowania pobierając ajaxem po jakimś parametrze odpowiednie dane dla selektora numer dwa.
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.