Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwa select'y
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Ociu
Witam.
Chcę zaznaczyć, że nie wiem, czy to powinno być tu, jeśli nie, to przenieście.

Mam 2 selecty w php:
  1. <?php
  2. echo '<form method=\"POST\" action=\"...\">
  3. <select size=\"1\" name=\"select\">';
  4. $sql = mysql_query(&#092;"SELECT * FROM ...\");
  5. while($row = mysql_fetch_row($sql))
  6. {
  7. echo '<option>'.$row['ble'].'</option>';
  8. }
  9. echo '<br />
  10. <input type=\"submit\" value=\"Prześlij\" name=\"B1\">
  11. </form>';
  12. ?>

i jest drugi, ale to mniejsza o to jak on wygląda.

Chcę zrobić, aby początkowo ten drugi był pusty, a gdy wybiore sobie jakąś opcję z tego pierwszego selecta, to pokazały mi się jakieś tam wybory w drugim... Tak jak np. z województwami. Np. jeśli w pierwszym wybiore województwo np. Mazowieckie, to w drugim pokazą mi sie niektóre miasta z tego województwa (Wa-wa, Pruszków, Wołomin etc.)
Z góry dzięki za pomoc.
SongoQ
Najprosciej i najszybciej jest zrobic to z przeladowaniem strony => odczytanie wartosci z pierwszego (jakiegos id), wygenerowanie zapytania i wyswietlenie 2.

Jesli chesz kombinowac bez przeladowanie, to poszukaj bo na forum kilka dni temu bylo o dynamicznym div, mozesz to wykorzystac do ladowania opcji.
dasko
@Ociu: przypisz sobie ta funkcje do onchange do selecta:
Kod
<script>
function onSelectChange() {
    // dwuwymiarowa tablica, zawierajaca wartosci do poszczegolnych elementow pierwszego selecta
    var values = [['blah', 'blaaah', 'blaaaaaaaaaaaaah'],['foo', 'bar', 'foobar']];
    // referencja do pierwszego selecta
    var pierwszy = document.getElementById('pierwszy');
    // referencja do drugiego selecta
    var drugi = document.getElementById('drugi');
    if(drugi.length > 0) {
  // usuwamy opcje drugiego selecta jesli ponownie zmieniono wybor w pierwszym
  for(var i=0; i < drugi.length;) {
     drugi.remove(drugi.length-1);
  }
    }
    var arr = values[pierwszy.selectedIndex];
    for(var i=0; i < arr.length; i++) {
  var option = document.createElement('option');
  option.text = arr[i];
  // dodajemy nowy element
  drugi.add(option, null);
    }
}
</script>

Możesz jakoś połaczyć JS i php, zeby zainicjowac ta dwuwymiarowa tablice biggrin.gif
SongoQ
@dasko Jesli tych miast bedzie bardzo duzo to moze to sie dlugo ladowac, lepiej mozna sie zastanowic nad czyms "dynamicznym"
dasko
Myślę, że Ociu nie chce robić listry miast, podał tylko taki przykład biggrin.gif

Forum jest JavaScript, więc rozwiązujemy po stronie klienta smile.gif
Ociu
Właśnie chodzi o to, że chcę i te miasta będą pobierane za pomocą php z bazy danych smile.gif (ale tylko niektóre miasta)
SongoQ
Ja bym to zrobil tak jak wczesniej pisalem np dynamiczne doladowywanie miast wedlug wybranego wojewodztwa. Mozesz uzyc do tego dynamicznego doladowywania div. Watek juz na tym forum sie pojawil.

Zlym i to bardzo zlym pomyslem jest ladowanie calej listy miast z wszystkich wojewodztw, moze to zajac troche czasu.
Ociu
Nie to nie było by na zasadzie wpakowania wszystkich miast. Aktualnie pisze system 'atrakcji turystycznych', czyli hotele, pływalnie, kina etc. I to wszystko działo by się przez formularz. Koleś wybiera Województwo, Potem wpisuje miasto, różne dane i dodaje swoją ofertę.

Potem by to wywaliło tylko miasta z wybranego województwa, w których są już jakieś hotele etc.
adism
mysle ze to moze sie przydac smile.gif link
Ociu
przyda, przyda thumbsupsmileyanim.gif
Diwi
A może to się przyda:
link
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.