Klasa formularzy w PHP – by żyło się lepiej

Kwi 20
2010

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

klasa 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 🙂

Jeden komentarz w “Klasa formularzy w PHP – by żyło się lepiej”

  1. greycoffey napisał/a:

    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…

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *