Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Lista rozwijana - aktualna strona
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam.

Zrobiłem listę rozwijaną danymi z bazy ale w tym wypadku po wybraniu czegokolwiek z listy odsyła na podaną stronę. Problem polega na tym, że wraca ona do wartości pierwszej. Całość znajduje się w pętli więc selected="selected" odpada a wystarczyło by użyć GET ale gdzie skoro w znacznikach option znajduje się nazwa wyświetlana.

Kod.

  1.  
  2. <select name="kontyent" onchange="self.location.href = this.value">';
  3.  
  4. $kontynenty = mysql_query("select * from `mapy`");
  5. while($kont = mysql_fetch_array($kontynenty)){
  6. echo '<option value="?mapa='.$kont['pozycja'].'">'.$kont['pozycja'].'</option>';
  7. }
  8. echo '</select>';


Będę wdzięczny za pomoc.
korex
  1. echo '<select name="kontyent" onchange="self.location.href = this.value">';
  2.  
  3. $kontynenty = mysql_query("select * from `mapy`");
  4. while($kont = mysql_fetch_array($kontynenty)){
  5. if($kont['pozycja'] == $_GET['mapa'])
  6. {
  7. echo '<option value="?mapa='.$kont['pozycja'].'" selected="selected">'.$kont['pozycja'].'</option>';
  8. }
  9. else
  10. {
  11. echo '<option value="?mapa='.$kont['pozycja'].'">'.$kont['pozycja'].'</option>';
  12. }
  13. }
  14. echo '</select>';
thek
Czemu odpada? Jeśli chcesz zaznaczyć jakąs pozycję to musisz to selected jakoś przechwycić i ustawić ktorejś Option. Czy zrobisz to na poziomie php ( podczas generowania wiesz gdzie idziesz, bo masz adres ), czy na poziomie js (masz dostęp do obiektu adresu) to już chyba nie jest ważne...
askone
Lekko modyfikując podane powyżej rozwiązanie pozbędziesz się duplikacji kodu:

  1. echo '<select name="kontyent" onchange="self.location.href = this.value">';
  2.  
  3. $kontynenty = mysql_query("select * from `mapy`");
  4. while($kont = mysql_fetch_array($kontynenty)){
  5. $selected = ($kont['pozycja'] == $_GET['mapa'])? 'selected = "selected"' : '';
  6.  
  7. echo '<option value="?mapa='.$kont['pozycja'].'" '.$selected.'>'.$kont['pozycja'].'</option>';
  8. }
  9. echo '</select>';


Pozdrawiam
Croos22
W każdym bądź razie uzyskałem efekt jaki chciałem.

Korzystając z tematu mam jeszcze jeden problem z wyciągnięciem danych do array.

  1. $polozenie = mysql_query("select * from `wioski` where `login` = '$login'");
  2. while($polo = mysql_fetch_array($polozenie)){
  3. $cel = array(echo $polo['numer'];)
  4. }



Zdaję sobie sprawę z tego że to jest źle ale to tylko przykład aby było wiadomo o co mi chodzi.
Sagnitor
  1. $cel = array();
  2. $polozenie = mysql_query("select * from `wioski` where `login` = '$login'");
  3. while($row = mysql_fetch_array($polozenie))
  4. {
  5. $cel[] = $row['numer'];
  6. }


Moja propozycja.
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.