Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: lista i selected
Forum PHP.pl > Forum > PHP
a79rtur
czesc
jest taka sytuacja ze mam liste wyboru (pojedynczy wybor) i po wybraniu jakiejs opcji costam sie dzieje, strona sie odswieza i lista jest zresetowana, a ja bym chciał zeby byla na tej wybranej opcji . rozwiazuje to w ten sposob ze lista opcji jest generowana przez php i przy kazdej opcji sprawdzany jest warunek, jesli jest on spelniony to opcja dostaje argument "selected". da sie to jakos prosciej rozwiazac ?niz takie sprawdzanie przy kazdej opcji czy spelnia warunek?
Kuziu
Ostatnio widze że za bardzo się przejmujesz szybkością wykonywania skryptów ... co Ci to przeszkadza że sprawdzi sobie kilka warunków ?

Na liście masz pewnie 5-10 opcji ... dla php'a to naprawde mały ułamek sekundy ... po co kombinować ... napewno jest wiele innych rzeczy, które można poprawić ...
a79rtur
no tak.
ale jak mam np liste miesiecy, jej nie wygeneruje w petli, tylko trza ta wszystkie warunki zapisac a to kod wydłuza sporo.
moza szablonami dalo by sie to jakos zrobić ? (uzywam pear i smarty sie ucze).
ze np. mam
<option value="1" {COS}>styczen</option>
... itd
to tam gdzie COS == value wstawić "selected" a gdzie indzij "" .
wie ktos jak to zrobic ?
sf
Nie rozumiem Twojego problemu. Masz tablice z nazwami miesięcy. Pętla foreach. Warunek if ... selected ... else ... END
a79rtur
dzieki smile.gif
rzseattle
Nie zawsze generowanie tablicy jest wygodne. Jesli sie dziala w samym szablonie i nie zasmieca kodu php zbednymi zmiennymi pojawia sie problem. Mozna kombinowac przez wprowadzenie (rejestracje w smarty) wlasnych funkcji np:

Kod
{select name="nazwa" values="1,2,3,4" labels="jeden,dwa,trzy,cztery" selected="1"}


Przy wielu danych jest to bardzo wygodna alternatywa do pisania tablic w php i potem tworzenia dodatkowej petli w smartym.
ganimedes
Prosty przykład, każdy rozumie.. analogicznie zrób swój smile.gif
  1. <?
  2. echo '<select name=\"id\">';
  3. $i=1;
  4. foreach ( $tablica as $key => $value )
  5. {
  6. if ( ($_POST['id'] == $i) or ($_GET['id'] == $i) )
  7.  {
  8.  echo '<option value=\".$i.'&#092;" selected>'.$value.'</option>';
  9.  } 
  10.  else
  11. {
  12.  echo '<option value=\".$i.'&#092;">'.$value.'</option>';
  13.  }
  14. $i++;
  15. }
  16. echo '</select>';
  17. ?>
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.