Skocz do zawartości
cochler

[php]formularz <select> Zapamiętywanie Wyboru

Rekomendowane odpowiedzi

Witam,

Mam formularz który sie odświeża po kliknięciu oblicz, by wypisać wynik obliczeń. We wszystkich polach mam ustawione aby zapamiętywał wpisaną wartość, chciał bym zrobić tak też w formularzy select (rozwijana lista), żeby po odświeżeniu strony lista pokazywała wcześniej wybraną wartość.

Nie mam pojęcia jak to zrobić. Mógł by ktoś pomóc?

 

 

Formularz select:

[php]<select name="op" >  <option value="wy" selected="selected">Wybierz ...</option>  <option value="p" >opcja 1</option>  <option value="ks" >opcja 2</option>  <option value="bz" >opcja 3</option>  <option value="kk" >opcja 4</option>  <option value="wko" >opcja 5</option>  <option value="pn" >opcja 6</option></select>[/php]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie potrafię tego zrobić. Słabo znam sie na php, a dokładnie przedwczoraj zacząłem poznawać. Narzazie korzystałem z gotowych kodów i przerabiałem je pod moje potrzeby. Mógł byś mi to bardziej szczegółowo wytłumaczyć?

Edytowane przez cochler

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Powiedzmy, że formularz wysyła wartości postem.

W związku z tym- sprawdzasz sobie cóż takiego się przesłało z formularza, a potem odpowiednio ustawiasz generowanie kodu:

<select name="op" >  <option value="wy" <?echo $_POST['op']== 'wy' ? 'selected="selected"': ''?>>Wybierz ...</option>  <option value="p" <?echo $_POST['op']== 'p' ? 'selected="selected"': ''?>>opcja 1</option>  <option value="ks" <?echo $_POST['op']== 'ks' ? 'selected="selected"': ''?>>opcja 2</option>  <option value="bz" <?echo $_POST['op']== 'bz' ? 'selected="selected"': ''?>>opcja 3</option>  <option value="kk" <?echo $_POST['op']== 'kk' ? 'selected="selected"': ''?>>opcja 4</option>  <option value="wko" <?echo $_POST['op']== 'wko' ? 'selected="selected"': ''?>>opcja 5</option>  <option value="pn" <?echo $_POST['op']== 'pn' ? 'selected="selected"': ''?>>opcja 6</option></select>

Co jednak jest "nieco" nieładne napisane z mojego punktu widzenia- wprowadza masakryczny chaos i ludziom tak piszącym formularze ręce bym przy samej d... poucinał (pozdrawiam paru pr0 webmajstrów, po których poprawiam właśnie jedną taką stronę).

Ciekawostka- niektórzy nie lubią operatorów warunkowych i piszą tam, gdzie wrzuciłem "blah ? blah1 : blah2" całe if(){}else{}, co... a zresztą, domyślcie się co to robi z takim formularzykiem.

 

Można trochę ładniej:

<select name="op" ><?$selectValues = array('wy'=>'Wybierz...','p'=>'opcja 1','ks'=>'opcja 2','bz'=>'opcja 3','kk'=>'opcja 4','wko'=>'opcja 5','pn'=>'opcja 6');foreach($selectValues as $key => $value){	echo '<option value="'.$key.'"'.($_POST['op']==$key ? ' selected="selected"' : '').'>'.$value.'</option>'."";}?></select>
$selectValues - nasza tablica, z której pobierasz dane do zmontowania formularza

foreach - fikuśna instrukcja do radzenia sobie z tablicami asocjacyjnymi w php (tablica asocjacyjna to taki twór, który... no, nieważne, który wygląda właśnie jak $selectValues i jest wbrew nieprzyjemnej nazwie bardzo przydatny i często-gęsto używany)

$key - klucz elementu tablicy

$value- wartość elementu

echo - wypisujemy element formularza.

 

Można chyba w sumie jeszcze ładniej to napisać, ale myślenie mi się już wyłączyło.

 

.:.:Edit: ortofrag:.:.

Edytowane przez m4r

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...