Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Lista rozwijana gubi wybraną pozycję.
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Mam formularz, a w nim listę rozwijaną. Sama lista działa dobrze, jednak podczas weryfikacji oraz po wysłaniu zawartości formularza gubi wybraną pozycję i wraca do początku.
Wszystkie dane wysyłam POST-em, jednak tu nie wiem jak powinienem uzupełnić tą listę żeby wybrana pozycja pozostawała bez zmian.
  1. $sLista_1 = $POST['lista_1'];

  1. <select name="lista_1">
  2. <option value="wybierz">wybierz</option>
  3. <option value="pozycja 1">pozycja 1</option>
  4. <option value="pozycja 2">pozycja 2</option>
  5. <option value="pozycja 3">pozycja 3</option>
  6. </select>
Lorum3
W zawartość elementu option, nie można wpisywać żadnych znaczników ( w twoim wypadku value).

Wybraną opcję odbierasz w ten sposób -

  1. $_POST['lista_1'];
markonix
Cytat(Lorum3 @ 21.04.2012, 12:51:59 ) *
W zawartość elementu option, nie można wpisywać żadnych znaczników ( w twoim wypadku value).

Co to za bzdura? To gdzie niby ustalasz jaka wartość ma być przesłana? W nazwie option?

Szunaj85 tak samo jak po wysłaniu wpisujesz w value pól tekstowych wpisaną wcześniej wartość tak samo przy select sprawdzasz, jaka wartość została wysłana i przy odpowiedniej dodajesz "selected".
Lorum3
Cytat(markonix @ 21.04.2012, 12:56:12 ) *
Co to za bzdura? To gdzie niby ustalasz jaka wartość ma być przesłana? W nazwie option?


Fakt, myślę o kilku rzeczach na raz, zwracam honor. To jednak nie zmienia faktu, że może ustalić sobie jedną nazwę dla wszystkich opcji wyboru.
Szunaj85
Cytat
tak samo jak po wysłaniu wpisujesz w value pól tekstowych wpisaną wcześniej wartość tak samo przy select sprawdzasz, jaka wartość została wysłana i przy odpowiedniej dodajesz "selected".

Mógłbyś pokazać mi przykład jak to powinno wyglądać.
potreb
Nie przesadzasz <option value="cos" <?=($_POST['lista'] == 'cos') "selected='selected'" : '')?>>wartosc</option>

Mozesz ładniej to zrobic rozbiajac tablice i podobny warunek zastosować.
Szunaj85
Cytat
Nie przesadzasz <option value="cos" <?=($_POST['lista'] == 'cos') "selected='selected'" : '')?>>wartosc</option>
Gdybym wiedział jak to dokładnie zrobić nie prosiłbym o to.
U mnie kod HTML znajduje się w PHP więc znaczniki <?php ?> nie są potrzebne. Jednak mimo ich usunięcia i wielu modyfikacji nie ma oczekiwanych efektów. sad.gif
Zastanawiam się jednak czy tu nie byłyby lepsze sesje albo zapis do cookies. worriedsmiley.gif
-RaV-
Witam,

Po pierwsze chciałbym zaznaczyć że prościej posługiwać się samymi cyframi w 'value'.

a po 2 proponuję zrobić to w ten sposób:

  1. <?php
  2. echo"<select name=\"lista_1\"><option>wybierz</option>
  3. for($i=1;$i<=3;$i++){
  4. if($_POST[lista_1]==$i){
  5. $a='selected="selected"';
  6. }
  7. else{
  8. unset($a);
  9. }
  10. echo"<option value=\"$i\" $a>Pozycja $i</option>"
  11. }
  12. echo "</select>";
  13. ?>


Pozdrawiam
Szunaj85
Nadal nic. sadsmiley02.gif Może lepiej zrobić to na sesjach? mellow.gif
markonix
Pokaż kod.
lukasz_os
Dalej jest źle bo pomagający zapomiał o czymś takim jak zasięg zmiennych.

  1. <?php
  2. echo"<select name=\"lista_1\"><option>wybierz</option>";
  3. for($i=1;$i<=3;$i++){
  4. if($_POST[lista_1]==$i){
  5. echo"<option value=\"$i\" selected=\"selected\">pozycja $i</option>";
  6. }
  7. else{
  8. echo"<option value=\"$i\" >pozycja $i</option>";
  9. }
  10. }
  11. echo "</select>";
  12. ?>
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.