Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]lista select, cały czas zaznaczona ostatnia opcja
Forum PHP.pl > Forum > Przedszkole
pablo_83
Witam, mam taki problemik z listą dropdown. Mianowicie pobieram sobie z bazy info o biletach i ich rodzaj mam w liście dropdown.
Lista zawsze pokazuje ostatnią opcję, nie wiem dlaczego. Nie wyświetla wybierz rodzaj biletu tylko zawsze wybrana domyslnie jest opcja "rodzinny"
  1. if($get_bilety->num_rows() > 0){
  2. echo form_open_multipart('site_bilety/edit_bilety');
  3.  
  4. foreach($get_bilety->result() as $val){
  5. if($val->rodzaj == 'normalny'){
  6. $selected1 = 'SELECTED';
  7. $selected2 = '';
  8. $selected3 = '';
  9. }else if($val->rodzaj == 'ulgowy'){
  10. $selected2 = 'selected';
  11. $selected1 = '';
  12. $selected3 = '';
  13. }else if($val->rodzaj == 'rodzinny'){
  14. $selected3 = 'selected';
  15. $selected2 = '';
  16. $selected1 = '';
  17. }
  18. echo 'Rodzaj:<br/><select name="rodzaj_biletu" style="width: 320px; margin-top: 5px; margin-left: 15px">';
  19. echo '<option>wybierz rodzaj biletu</option>';
  20. echo '<option value="normalny">Normalny</option>';
  21. echo '<option value="ulgowy">Ulgowy</option>';
  22. echo '<option value="rodzinny">Rodzinny</option>';
  23. echo '</select><br/>';
  24. echo 'Strefa:<br/><input type="text" name="strefa" value="'.$val->strefa.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/>';
  25. echo 'Cena:<br/><input type="text" name="cena" value="'.$val->cena.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/><br/>';
  26. }
  27.  
  28.  
  29. echo '<br/><br/><input type="submit" class="submit" value="Dodaj bilety"/>';
  30. echo form_close();
  31. }else{
  32. echo '<br/><br/><center>Nie dodano jeszcze żadnych biletów do tego koncertu.</center>';
  33. }


Nic nie zmienia się nawet jak wstawie przy innej opcji SELECTED.
Proszę o pomoc.
matino
A w którym miejscu korzystasz ze zmiennych $selected? smile.gif
pablo_83
teraz są usunięte ale wstawiałem je:
  1. echo '<option>wybierz rodzaj biletu</option>';
  2. echo '<option value="normalny" '.$selected1.'>Normalny</option>';
  3. echo '<option value="ulgowy" '.$selected2.'>Ulgowy</option>';
  4. echo '<option value="rodzinny" '.$selected3.'>Rodzinny</option>'


Z tym że nawet bez nich lista powinna mieć domyslnie wybraną pierwszą opcję > wybierz rodzaj biletu < a nie ostatnią.
grzeee
Spróbuj tego:
  1. <?php
  2. if($get_bilety->num_rows() > 0){
  3. echo form_open_multipart('site_bilety/edit_bilety');
  4.  
  5. foreach($get_bilety->result() as $val){
  6. if($val->rodzaj == 'normalny'){
  7. $selected[1] = ' selected = "selected" ';
  8. $selected[2] = '';
  9. $selected[3] = '';
  10. }else if($val->rodzaj == 'ulgowy'){
  11. $selected[1] = '';
  12. $selected[2] = ' selected = "selected" ';
  13. $selected[3] = '';
  14. }else if($val->rodzaj == 'rodzinny'){
  15. $selected[1] = '';
  16. $selected[2] = '';
  17. $selected[3] = ' selected = "selected" ';
  18. }
  19. echo 'Rodzaj:<br/><select name="rodzaj_biletu" style="width: 320px; margin-top: 5px; margin-left: 15px">';
  20. echo '<option>wybierz rodzaj biletu</option>';
  21. echo '<option value="normalny" '.$selected[1].' >Normalny</option>';
  22. echo '<option value="ulgowy" '.$selected[2].' >Ulgowy</option>';
  23. echo '<option value="rodzinny" '.$selected[3].' >Rodzinny</option>';
  24. echo '</select><br/>';
  25. echo 'Strefa:<br/><input type="text" name="strefa" value="'.$val->strefa.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/>';
  26. echo 'Cena:<br/><input type="text" name="cena" value="'.$val->cena.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/><br/>';
  27. }
  28.  
  29.  
  30. echo '<br/><br/><input type="submit" class="submit" value="Dodaj bilety"/>';
  31. echo form_close();
  32. }else{
  33. echo '<br/><br/><center>Nie dodano jeszcze żadnych biletów do tego koncertu.</center>';
  34. }
  35.  
  36. ?>


a teraz to już widzę co nie tak, sprawdź jak zaznaczać poprawnie w html selected ! - selected=selected
pablo_83
to nie to sprawdzałem ten sposób,
sprawdzając źródło w firebug'u
wyświetla:
  1. <select style="width: 320px; margin-top: 5px; margin-left: 15px" name="rodzaj_biletu">
  2. <option>wybierz rodzaj biletu</option>
  3. <option selected="selected" value="normalny">Normalny</option>
  4. <option value="ulgowy">Ulgowy</option>
  5. <option value="rodzinny">Rodzinny</option>


jednak dalej wybrana jest opcaj rodzinny

BTW. Samo SELECTED tez się stosuje -> opis tutaj
matino
A dodałeś to co Ci kolega wyżej zasugerował? Bo coś mi się wydaje, że to jednak to smile.gif
pablo_83
kod wygląda tak i to nic nie zmienia:
  1. if($get_bilety->num_rows() > 0){
  2. echo form_open_multipart('site_bilety/edit_bilety');
  3.  
  4. foreach($get_bilety->result() as $val){
  5. if($val->rodzaj == 'normalny'){
  6. $selected[1] = 'selected = "selected"';
  7. $selected[2] = '';
  8. $selected[3] = '';
  9. }else if($val->rodzaj == 'ulgowy'){
  10. $selected[1] = '';
  11. $selected[2] = 'selected = "selected"';
  12. $selected[3] = '';
  13. }else if($val->rodzaj == 'rodzinny'){
  14. $selected[1] = '';
  15. $selected[2] = '';
  16. $selected[3] = 'selected = "selected"';
  17. }
  18. echo 'Rodzaj:<br/><select name="rodzaj_biletu" style="width: 320px; margin-top: 5px; margin-left: 15px">';
  19. echo '<option>wybierz rodzaj biletu</option>';
  20. echo '<option value="normalny" '.$selected[1].'>Normalny</option>';
  21. echo '<option value="ulgowy" '.$selected[2].'>Ulgowy</option>';
  22. echo '<option value="rodzinny" '.$selected[3].'>Rodzinny</option>';
  23. echo '</select><br/>';
  24. echo 'Strefa:<br/><input type="text" name="strefa" value="'.$val->strefa.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/>';
  25. echo 'Cena:<br/><input type="text" name="cena" value="'.$val->cena.'" style="width: 300px; margin-top: 5px; margin-left: 15px"/><br/><br/>';
  26. }
  27.  
  28.  
  29. echo '<br/><br/><input type="submit" class="submit" value="Dodaj bilety"/>';
  30. echo form_close();
  31. }else{
  32. echo '<br/><br/><center>Nie dodano jeszcze żadnych biletów do tego koncertu.</center>';
  33. }


cały czas wybrana opcja to rodzinny
matino
U mnie kod poniżej działa, tj. mam zaznaczoną opcję ulgowy...
Daj var_dump($val) przed ifami i wszystko będzie jasne.
  1. $val->rodzaj = 'ulgowy';
  2. if ($val->rodzaj == 'normalny')
  3. {
  4. $selected[1] = 'selected = "selected"';
  5. $selected[2] = '';
  6. $selected[3] = '';
  7. }
  8. else if ($val->rodzaj == 'ulgowy')
  9. {
  10. $selected[1] = '';
  11. $selected[2] = 'selected = "selected"';
  12. $selected[3] = '';
  13. }
  14. else if ($val->rodzaj == 'rodzinny')
  15. {
  16. $selected[1] = '';
  17. $selected[2] = '';
  18. $selected[3] = 'selected = "selected"';
  19. }
  20. echo 'Rodzaj:<br/><select name="rodzaj_biletu" style="width: 320px; margin-top: 5px; margin-left: 15px">';
  21. echo '<option>wybierz rodzaj biletu</option>';
  22. echo '<option value="normalny" ' . $selected[1] . '>Normalny</option>';
  23. echo '<option value="ulgowy" ' . $selected[2] . '>Ulgowy</option>';
  24. echo '<option value="rodzinny" ' . $selected[3] . '>Rodzinny</option>';
  25. echo '</select><br/>';
pablo_83
w var_dump mam:

object(stdClass)#22 (5) { ["id_biletu"]=> string(1) "2" ["strefa"]=> string(1) "1" ["rodzaj"]=> string(8) "normalny" ["cena"]=> string(2) "80" ["id_koncertu"]=> string(2) "20" }



temat do zamknięcia.
Naprawiło się ;]

Nie jestem pewien do końca ale przypuszczam że przeglądarka sobie coś zapisała w cashu i dlatego cały czas pokazywał to samo.
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.