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
<?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();
?>
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 🙂
13 lutego 2011 dnia 18:28
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…