[klasa] Walidacja pola select w PHP |
[klasa] Walidacja pola select w PHP |
17.02.2013, 09:53:11
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 4.07.2011 Ostrzeżenie: (0%) |
Witam, chciałbym przedstawić moją klasę na walidacje pola select.
Chodzi o to, by w naszym polu select nie została wpisana wartość, której nie chcemy, oczywiście możecie to sprawdzić za pomocą kilki warunków (czym dłuższy select tym dłuższy warunek) Na potrzeby swojego skryptu napisałem klasę, która waliduje nasz select. Jak z niej korzystać? Dołączamy plik selectvalidate.class.php
Następnie tworzymy obiekt z nazwą selecta, ja nazwałem wojewodztwo:
Dodajemy do niego optiony metodą:
Następnie wyświetlamy nasz select w formularzu:
Jeśli chcemy go sprawdzić, na poczatku pobieramy wartośc z tego selecta o nazwie wojewodztwo:
I sprawdzamy, czy wartośc jest poprawna:
selectvalidate.class.php:
Przykład zastosowania:
Jest to moja pierwsza zabawka w php obiektowym, prosiłbym o oceny Ten post edytował wlodziu 17.02.2013, 09:54:59 |
|
|
17.02.2013, 18:37:52
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
Ta klasa to żadna walidacja. - brak obsługi grup - brak obsługi multiple - brak ustawienia domyślnego "selected" - jak już sam wspomniałeś im więcej wartości tym więcej problemów. Wytłumacz mi w jaki sposób mam dodać 50, 150 lub 300 opcji za pomocą tego:
? - sama walidacja to nieporozumienie |
|
|
17.02.2013, 21:57:29
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 4.07.2011 Ostrzeżenie: (0%) |
A jak dodasz w swoim kodzie 50 wpisów? Tak samo jak w moim? Czy użyjesz magii?
Cytat - brak ustawienia domyślnego "selected" zobacz swój kod. Nie chodzi mi tutaj o dodawanie wpisów w inny sposób niż z palca, a do tego przeczytaj końcówkę mojego posta. |
|
|
18.02.2013, 10:30:15
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 071 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Generalnie zgadzam się z CuteOne, ale skoro koniecznie chcesz opinii to:
1. Wszystkie składowe są publiczne. Nie deklarujesz ich jako protected/private więc domyślnie są publiczne. 2. Po co Ci 2 składowe option i value? Możesz to przecież zrobić na 1 tablicy. 3. Masz metodę dodawania opcji, a gdzie metoda usuwania? 4. Metoda showSelect nie pozwala na wstawienie atrybutów HTML select'a. Nie można nadać mu np. klasy albo id. 5. $i <= $count - 1 jest w sumie bez sensu. To samo osiągniesz poprzez $i < $count. 6. W validateSelect robisz zbędne iteracje pętli. Jeśli dany element istnieje to od razu zwróć TRUE, a nie przeszukuj kolejnych elementów. 7. W validateSelect wystarczyłoby skorzystać z in_array(). Jeśli option i value przerobiłbyś na 1 tablicę to wystarczyłoby isset / array_key_exists. |
|
|
18.02.2013, 12:27:05
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
Cytat A jak dodasz w swoim kodzie 50 wpisów? Tak samo jak w moim? Czy użyjesz magii?
|
|
|
19.02.2013, 09:14:33
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 4.07.2011 Ostrzeżenie: (0%) |
I tak czy siak mussiz przypisać je do tablicy, więc możesz także powielać mój kod i wpisywać, sytuacja moze się zmienić, jeśli chcesz to użyć jeszcze dalej, ale to mozna dopisać odpowiednią metodę i nie będzie problemu
|
|
|
19.02.2013, 09:29:43
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.09.2024 - 20:26 |