Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Resetowanie pola select po bledzie
Forum PHP.pl > Forum > Przedszkole
Spooky2
Mam taki problem - pierwszy raz to robie i nie bardzo wiem jakiej funkcji uzyc. Mam pole select w formularzu
Teraz jeśli user cos tam wybierz, np piate pole, ale nie uzupelni jakiegos elementu formularza - pojawi sie komunikat i formularz "wyczysci sie". O ile z wartosciami pol input nie mam problemu, o tyle, nie wiem jak "zachowac" wartosc pola select uprzednio wybrana przez usera.

w koncu select moze wygladac tak
<option value="imie">IMIE USERA</option>
<option value="nazwisko_usera">NAZWISKO</option>
itd

selecta produkuje w petli - stworzylem tablice("imie' => 'IMIE USRA', 'nazwisko_usera' => 'NAzWISKO') itd
Jesli zrobie array_diff($tablica, $tablica_wyb_pola) gdzie $tablica_wyb_pola zawiera wybrane przez uzytkownika pole otrzymam ladnie tablice bez tegoz pola... czyli wystarczyloby wstawic na pierwszym miejscu tej "nowej tablicy" brakujacy klucz wraz z wartoscia... klucz teoretycznie mam (pole wybrane przez usera) nie mam jednak wartosci do niego przypisanej...
Moze przekombinowalem, ale nie wiedzialem jak sie a to inaczej zabrac :-) Jak sie robi takie rzeczy? ;-)
Berg
O ile dobrze zrozumiałem to chcesz wyświetlić uzupełniony formularz w przypadku wystąpienia jakiegoś błędu, masz jednak problem z selectem. Jeśli masz opcje upchnięte w tablicy to przy renderowania opcji można sprawdzić czy dana opcja została zaznaczona, rozwiązanie dla selecta bez multiple:

  1. <?php
  2. $array_select = array('imie' => 'IMIE USERA', 'nazwisko' => 'NAZWISKO USERA');
  3.  
  4. $select_isset = ((!empty($_POST['form_select']))?true:false);    // Sprawdza czy wysłano formularz z uzupełnionym select
  5.  
  6. echo '<select name="form_select">';
  7.  
  8. foreach($array_select as $key => $value) {    // renderowanie każdej z opcji, przy okazji sprawdzenie czy dana opcja została zaznaczona
  9.    
  10.    if($select_isset && $_POST['form_select'] == $key) {    // Zaznaczono właśnie te pole
  11.        
  12.        echo '<option value="'.$key.'" selected="selected">'.$value.'</option>';
  13.    }
  14.    else {    // Tego pola nie zaznaczono
  15.        
  16.        echo '<option value="'.$key.'">'.$value.'</option>';
  17.    }
  18. }
  19.  
  20. echo '</select>';
  21. ?>
Spooky2
Mo to juz cos :-) Dzieki, nie wiedzialem, ze istnieje selected...
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.