Prosty filtr


(Derekdx) #1

Witam, zrobiłem sobie w programie proty filtr który pokazuje aktynych/niekatywnych/wszystkich użytkowników.

Aktywni
Nieaktywni
Wszyscy

formularz zwraca do skrytpu php zmienna w zależności od wybranej opcji.

Wszystko jest ok tylko po przeładowaniu strony pasek pokazuje pierwszą opcję.

Czy da się zrobić tak aby pasek pokazywał opcje którą reprezentują dane

tzn. jak wybiore opcje nieaktywne to po przeładowaniu pasek zostanie w pozycji nieaktywne


(Grzelix) #2

dodaj atrybut selected="selected" do wybranej opcji

http://www.w3schools.com/tags/att_option_selected.asp


(ziggurad) #3

Przesyłasz dane przez posta?

Możesz wtedy zrobić coś w stylu:

Aktywni
>Nieaktywni
Wszyscy

Jeżeli istnieje dany post i równa się 1 to dodawane jest selected="selected".


(Drobok) #4

Po odświeżeniu dalej masz pierwszą opcję. Lepiej zaznaczenie po post zapisać w sesji i z niej wyświetlać wg sposobu poprzednika (oczywiście if jest dla każdego z selectów, więc lepiej zapisać użyć prostej tablicy trzyelementowej. Zapisz selected do indexu wg posta, oraz do każdego selecta wypisz element tablicy).


(Derekdx) #5

Jako, że strona jest oparta o smarty PHP to wygląda toa tak:

Aktywni
Nieaktywni
Wszyscy

(Drobok) #6

I zrobiłeś to czego zrobić nie powinieneś. Masz 3 instrukcje warunkowe, a użycie tablicy wyeliminowałoby je zupełnie :))


(ziggurad) #7

Masz rację, po oświerzeniu POSTa nie ma, można zapisać w sesji, do tego można zrobić żeby po odświerzeniu sprawdzał czy jest "nowy" POST - jeśli nie to filtrować bo starej właściwości z sesji.

@DerekDX

Użyj tablicy jak @drobok radzi.

Swoją drogą pierwszy if jest niepotrzebny to ta opcja jest domyślnie zaznaczona.


(Agatonster) #8

DerekDX ,

Zapoznaj się z tematem i popraw tytuł tematu na konkretny, mówiący o problemie. W celu dokonania zaleconej korekty proszę użyć przycisku Edytuj przy poście otwierającym ten temat.

Zignorowanie zalecenia będzie skutkowało przeniesieniem tematu do Kosza.