Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Lista rozwijana gubi wybraną pozycję.
Szunaj85
post
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


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>


Ten post edytował Szunaj85 21.04.2012, 13:03:28


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
Lorum3
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 5
Dołączył: 10.12.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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'];
Go to the top of the page
+Quote Post
markonix
post
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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".

Ten post edytował markonix 21.04.2012, 11:57:30


--------------------
Go to the top of the page
+Quote Post
Lorum3
post
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 5
Dołączył: 10.12.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Szunaj85
post
Post #5





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


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ć.


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
potreb
post
Post #6





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie przesadzasz <option value="cos" <?=($_POST['lista'] == 'cos') "selected='selected'" : '')?>>wartosc</option>

Mozesz ładniej to zrobic rozbiajac tablice i podobny warunek zastosować.


--------------------

Go to the top of the page
+Quote Post
Szunaj85
post
Post #7





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował Szunaj85 22.04.2012, 16:31:43


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
--RaV--
post
Post #8





Goście







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
Go to the top of the page
+Quote Post
Szunaj85
post
Post #9





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


Nadal nic. sadsmiley02.gif Może lepiej zrobić to na sesjach? mellow.gif


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
markonix
post
Post #10





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Pokaż kod.


--------------------
Go to the top of the page
+Quote Post
lukasz_os
post
Post #11





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował lukasz_os 26.04.2012, 17:14:04


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:35