Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Domyślna wartość listy rozwijanej
Forum PHP.pl > Forum > Przedszkole
sq6aah
Witam,
chciałem aby na rozwijanej liście domyślnie ustawiana była pozycja wyciągnięta z bazy danych. Wiem że można zrobić to statycznie poprzez selected, ale nie mogę wymyślić żadnego rozwiązania w PHP.
Przedstawię jeszcze przykład aby to lepiej wyjaśnić.

Lista:
  1. <select name="jezyk">
  2. <option value="pl">Polski</option>
  3. <option value="en">Angielski</option>
  4. <option value="de">Niemiecki</option>
  5. <option value="fr">Francuski</option>


I jeśli w bazie będzie "fr" to aby lista wyglądała tak:
  1. <select name="jezyk">
  2. <option value="pl">Polski</option>
  3. <option value="en">Angielski</option>
  4. <option value="de">Niemiecki</option>
  5. <option selected value="fr">Francuski</option>
  6. </select>


Wystarczy tylko jeśli ktoś naprowadzi mnie na jakieś rozwiązanie.
Z góry dziękuje za pomoc.
Kshyhoo
Na forum jest sporo wątków na ten temat, choćby ten
emtiej
  1. // pobierasz to co masz pobrać i odpowiedni jezyk przypisujesz do zmiennej $lang na przykład
  2.  
  3. switch($lang)
  4. {
  5. case "pl":
  6. echo '
  7. <select name="jezyk">
  8. <option selected value="pl">Polski</option>
  9. <option value="en">Angielski</option>
  10. <option value="de">Niemiecki</option>
  11. <option value="fr">Francuski</option>
  12. </select> ';
  13. break;
  14. case "en":
  15. echo '
  16. <select name="jezyk">
  17. <option value="pl">Polski</option>
  18. <option selected value="en">Angielski</option>
  19. <option value="de">Niemiecki</option>
  20. <option value="fr">Francuski</option>
  21. </select> ';
  22. break;
  23. case "de":
  24. echo '
  25. <select name="jezyk">
  26. <option value="pl">Polski</option>
  27. <option value="en">Angielski</option>
  28. <option selected value="de">Niemiecki</option>
  29. <option value="fr">Francuski</option>
  30. </select> ';
  31. break;
  32. case "fr":
  33. echo '
  34. <select name="jezyk">
  35. <option value="pl">Polski</option>
  36. <option value="en">Angielski</option>
  37. <option value="de">Niemiecki</option>
  38. <option selected value="fr">Francuski</option>
  39. </select> ';
  40. break;
  41. default:
  42. echo '
  43. <select name="jezyk">
  44. <option value="pl">Polski</option>
  45. <option value="en">Angielski</option>
  46. <option value="de">Niemiecki</option>
  47. <option value="fr">Francuski</option>
  48. </select> ';
  49. }
  50.  


Albo jak wolisz to zrób sobie ifami jak kto woli...
artek77
Przykład, który być może rozwiąże twój problem:

  1. <?php
  2. $tab_ubrania_id_ubrania=1; // ID wybranego ubrania
  3. $tab_ubrania_nazwa_ubrania='Czapka niewidka'; // Nazwa wybranego ubrania
  4. $tab_ubrania_nr_koloru=4; // ID koloru przypisanego dla wybranego ubrania
  5.  
  6. $form_kolor = '<select name="kolor">';
  7. foreach($tab_kolory as $kolor)
  8. {
  9. $kolor['id_koloru']==$ubranie['nr_koloru'] ? $selected=' selected' : $selected='';
  10. $form_kolor.= '<option value='.$kolor['id_koloru'].$selected.'>'.$kolor['nazwa_koloru'].'</option>';
  11. }
  12. $form_kolor .= '</select>';
  13.  
  14. echo $form_kolor;
  15. ?>

źródło
altruista2
Chyba najbardziej eleganckie rozwiązanie (bez switcha na 50 linijek:D):
  1. $wybrane = 'fr';
  2.  
  3. $opcje = Array(
  4. 'pl' => 'Polski',
  5. 'de' => 'Niemiecki',
  6. 'en' => 'Angielski',
  7. 'fr' => 'Francuski');
  8.  
  9. echo '<select name="jezyk">';
  10. foreach($opcje as $k=>$v) {
  11. $wybrane==$k ? $selected=' selected' : $selected='';
  12. echo "<option value=\"$k\"$selected>$v</option>";
  13. }
  14. echo '</select>
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.