Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] Walidacja pola select w PHP
wlodziu
post 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
  1. require_once('selectvalidate.class.php');

Następnie tworzymy obiekt z nazwą selecta, ja nazwałem wojewodztwo:
  1. $pole = new Select('wojewodztwo');

Dodajemy do niego optiony metodą:
  1. $pole->AddOption('mazowieckie', 'maz'); // dodajemy optiony: nazwa | wartosc
  2. $pole->AddOption('lodzkie', 'lodz'); // jw
  3. $pole->AddOption('slaskie', 'sl'); // jw
  4. $pole->AddOption('pomorskie', 'pom'); // jw


Następnie wyświetlamy nasz select w formularzu:
  1. $pole->showSelect()


Jeśli chcemy go sprawdzić, na poczatku pobieramy wartośc z tego selecta o nazwie wojewodztwo:
  1. $select = $_POST['wojewodztwo'];


I sprawdzamy, czy wartośc jest poprawna:
  1. if ($pole->validateSelect($select)) { // sprawdzamy nasz select
  2. echo 'wykonujemy dalsza czesc skryptu.';
  3. } else {
  4. echo 'Ojj, mamy blad, ktos probuje wpisac inna wartosc';
  5. }


selectvalidate.class.php:
  1. <?php
  2. /*
  3. Author: wlodziu
  4. Date: 17/02/2013
  5. Contact: wlodziuss@wp.pl
  6. */
  7. class Select {
  8. public function __construct ($name) {
  9. $this->name = $name;
  10. }
  11. public function AddOption ($text, $value) {
  12. $this->option[] = $text;
  13. $this->value[] = $value;
  14. }
  15. public function showSelect () {
  16. $count = count($this->option);
  17. $string = '<select name="'.$this->name.'">';
  18. for ($i = 0; $i <= $count - 1; $i++) {
  19. $string .= '<option value="'.$this->value[$i].'">'.$this->option[$i].'</option>';
  20. }
  21. $string .= '</select>';
  22. return $string;
  23. }
  24. public function validateSelect ($val) {
  25. $count = count($this->option);
  26. $x = false;
  27. for ($i = 0; $i <= $count - 1; $i++) {
  28. if ($this->value[$i] == $val) {
  29. $x = true;
  30. }
  31. }
  32. return $x;
  33. }
  34. }
  35. ?>


Przykład zastosowania:
  1. <?php
  2. require_once('selectvalidate.class.php'); // dolaczamy plik z klasą
  3. $pole = new Select('wojewodztwo'); // tworzymy obiekt, z parametrem nazwy selecta
  4. $pole->AddOption('mazowieckie', 'maz'); // dodajemy optiony: nazwa | wartosc
  5. $pole->AddOption('lodzkie', 'lodz'); // jw
  6. $pole->AddOption('slaskie', 'sl'); // jw
  7. $pole->AddOption('pomorskie', 'pom'); // jw
  8. if ($_POST['submit']) {
  9. $select = $_POST['wojewodztwo'];
  10. if ($pole->validateSelect($select)) { // sprawdzamy nasz select
  11. echo 'wykonujemy dalsza czesc skryptu.';
  12. } else {
  13. echo 'Ojj, mamy blad, ktos probuje wpisac inna wartosc';
  14. }
  15. } else {
  16. // wyswietlamy nasz utworzony select: $pole->showSelect()
  17. echo '
  18. <form method="post" action="">
  19. '.$pole->showSelect().'
  20. <input type="submit" name="submit" value="OK">
  21. </form>
  22. ';
  23. }
  24.  
  25. ?>


Jest to moja pierwsza zabawka w php obiektowym, prosiłbym o oceny smile.gif

Ten post edytował wlodziu 17.02.2013, 09:54:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2024 - 10:50