Podczas rutynowego trenowania programowania obiektowego w PHP napisałem małą klasę obsługi formularzy. Klasa posiada 5 funkcji umożliwiających tworzenie
- Znacznika <form> i </form> z atrybutami action oraz metod – cóż, to chyba oczywiste
- Znacznika <input>
- Pola tekstowego <textarea>
- Listy wyboru <radio>
- Listy rozwijanej <select> – ta część podoba mi się w kodzie najbardziej
Klasa nie jest rozbudowana do granic możliwości. Posiada najczęściej używane znaczniki wraz z podstawowymi atrybutami, nie wliczając w nie identyfikatora i klasy. Nic jednak nie stoi na przeszkodzie rozbudowania kodu.
Deklaracja przykładowego formularza
[codesyntax lang=”php”]
<?php class formularz { /* * Rozpoczyna <form> * argv[0] = action * - - - - skrypt.php * argv[1] = methon * - - - - get * - - - - post */ function poczatek($action, $method) { $form = '<form action="'; $form .= $action; $form .= '" method="'; $form .= $method; $form .= '">'; echo $form; } /* * Kończy </form> */ function koniec() { echo '</form>'; } /* * <input> * argv[0] = type * - - - - text * - - - - password * - - - - hidden * - - - - radio * - - - - reset * argv[1] = name * - - - - nazwa * argv[2] = value * - - - - wartość */ function input($type, $name, $value) { $input = '<input type="'; $input .= $type; $input .= '" name="'; $input .= $name; $input .= '" value="'; $input .= $value; $input .= '" />'; echo $input; } /* * <textarea> * argv[0] = name * - - - - nazwa * argv[1] = value * - - - - wartość * argv[2] = cols * - - - - int * argv[3] = rows * - - - - int */ function textarea($name, $value, $x, $y) { $input = '<textarea name="'; $input .= $name; $input .= '" cols="'; $input .= $x; $input .= '" rows="'; $input .= $y; $input .= '">'; $input .= $value; $input .= "</textarea>"; echo $input; } /* * <select> <option></option> </select> * argv[0] = name * - - - - nazwa * argv[1] = option * - - - - wartość <option> * - - - - array("option", "option2" ...) */ function select($name, $value) { $input = '<select name="'; $input .= $name; $input .= '">'; for($i=0; $i<count($value); ++$i) { $input .= '<option>'; $input .= $value[$i]; $input .= '</option>'; } $input .= "</select>"; echo $input; } } $formularz = new formularz; $formularz->poczatek("", "post"); echo 'Nick: '; $formularz->input("text", "login", "value"); echo '<br />Haslo: '; $formularz->input("password", "password", "haslo"); echo '<hr /><br />Wiadomosc:<br />'; $formularz->textarea("area", "Wpisz cos ;)", 20, 3); echo '<br />'; $formularz->select("sel", array("Lista rozwijana", "cos2", "cos3")); echo '<br /><br /><br /><br /><br />'; $formularz->input("submit", "submit", "Akcja!"); $formularz->koniec(); ?>
[/codesyntax]
Każda z funkcji posiada kilka parametrów odpowiedzialne za wygląd formularza. Kod może przydać się początkującym webmasterom do nauki programowania obiektowego.
-Mogę zmodyfikować i użyć Twojego kodu?
-Jak najbardziej 🙂
Twój kod zaprzecza idei obiektowości, to wszystko mógłbyś zrobić za pomocą zwykłych funkcji, a w klasy tylko to obudowałeś.
HTML_Element -> Form_Element -> Input…