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
require_once('selectvalidate.class.php');
Następnie tworzymy obiekt z nazwą selecta, ja nazwałem wojewodztwo:
$pole = new Select('wojewodztwo');
Dodajemy do niego optiony metodą:
$pole->AddOption('mazowieckie', 'maz'); // dodajemy optiony: nazwa | wartosc $pole->AddOption('lodzkie', 'lodz'); // jw $pole->AddOption('slaskie', 'sl'); // jw $pole->AddOption('pomorskie', 'pom'); // jw
Następnie wyświetlamy nasz select w formularzu:
$pole->showSelect()
Jeśli chcemy go sprawdzić, na poczatku pobieramy wartośc z tego selecta o nazwie wojewodztwo:
$select = $_POST['wojewodztwo'];
I sprawdzamy, czy wartośc jest poprawna:
if ($pole->validateSelect($select)) { // sprawdzamy nasz select } else { }
selectvalidate.class.php:
<?php /* Author: wlodziu Date: 17/02/2013 Contact: wlodziuss@wp.pl */ class Select { public function __construct ($name) { $this->name = $name; } public function AddOption ($text, $value) { $this->option[] = $text; $this->value[] = $value; } public function showSelect () { $string = '<select name="'.$this->name.'">'; for ($i = 0; $i <= $count - 1; $i++) { $string .= '<option value="'.$this->value[$i].'">'.$this->option[$i].'</option>'; } $string .= '</select>'; return $string; } public function validateSelect ($val) { $x = false; for ($i = 0; $i <= $count - 1; $i++) { if ($this->value[$i] == $val) { $x = true; } } return $x; } } ?>
Przykład zastosowania:
<?php require_once('selectvalidate.class.php'); // dolaczamy plik z klasą $pole = new Select('wojewodztwo'); // tworzymy obiekt, z parametrem nazwy selecta $pole->AddOption('mazowieckie', 'maz'); // dodajemy optiony: nazwa | wartosc $pole->AddOption('lodzkie', 'lodz'); // jw $pole->AddOption('slaskie', 'sl'); // jw $pole->AddOption('pomorskie', 'pom'); // jw if ($_POST['submit']) { $select = $_POST['wojewodztwo']; if ($pole->validateSelect($select)) { // sprawdzamy nasz select } else { } } else { // wyswietlamy nasz utworzony select: $pole->showSelect() echo ' <form method="post" action=""> '.$pole->showSelect().' <input type="submit" name="submit" value="OK"> </form> '; } ?>
Jest to moja pierwsza zabawka w php obiektowym, prosiłbym o oceny
