Opakovaného psaní, stejně definovaného políčka, se opět vyhneme pomocí definování vlastní třídy na tento formulářový prvek. Složitější oproti select-option je zejména v tom, že má mnohem více možností (text, submit, password, checkbox, ...).
V adresáři /lib/HTML/Form jsem si vytvořil soubor Input.php, zde uvádím jeho část:
class HTML_Form_Input
{
/***************************** ATRIBUTY TRIDY *****************************/
/** typ inputu podle ktereho se odviji jeho vlastnosti */
private $type;
/** nazev inputu */
private $name;
/** hodnota inputu value u checkox moznost checked */
private $request;
/** velikost inputu */
private $size;
/** maximalni pocet znaku inputu */
private $maxlength;
/** policko bude sede, nepujde menit */
private $disabled;
/** obsah pole nepujde menit */
private $readOnly;
/** zarovnani jako u obrazku */
private $align;
/** nastaveni class z CSS */
private $classCss;
/** stylovani tlacitka pomoci CSS */
private $style;
/** JS kod inputu */
private $javaScript;
/****************************** METODY TRIDY ******************************/
/**
* konstruktor tridy pro vytvoreni inputu
*
* @param String $name nazev inputu
* @param String $request vkladana hodnota value nebo checked
* @param int $size nepovinny parametr velikost policka
* @param int $maxlength nepovinny parametr maximalni pocet znaku
*
*/
public function __construct($name, $request, $size = null, $maxlength = null)
{
$this->name = $name;
$this->request = $request;
$this->size = $size;
$this->maxlength = $maxlength;
$this->type = "text";
$this->disabled = false;
$this->readOnly = false;
}
}
Kompletní třída ke stažení: HTML_Form_Input
Použití je velmi snadné a opět elegantnější, než psaní HTML kódu:
$test = new HTML_Form_Input("test", $_POST["test"]);
$test->getInput(); // vypise HTML kod input, defaltne typ text
Předefinovat na jiný typ je opět otázka chviličky:
$test->setTypeInput("checkbox"); // tlacitko bude checkox
$test->getInput();
$test->setTypeInput("password"); // tlacitko bude password
$test->getInput();
Možností je opravdu hodně a nemá cenu je zde všechny vypisovat. Opět je otázka, co všechno vývojář potřebuje. Nespornou výhodou, definování těchto malých oblastí, je i fakt, že jsou kdykoli rozšířitelné o vlastnosti, které jsem opomněl definovat při prvním návrhu.
Přístě se podívám na poslední, zajímavý formulářový prvek: textarea a na jeho omezení počtu znaků pomocí javascriptu.
Parada akorat si neumim dobre predstavit, jestli jsem to tedy dobre pochopil.
OdpovědětVymazatBudu delat nejaky formular treba o 10 prvcich, takze pouziji 10x novy objekt?
10x do stejne promenne , treba $a nebo co novy objekt nova promenna.
Diky ( Jinak mi to celkem rozsirilo povedomi o OOP), ja pisu oop vice jako proceduralni kod jen s volanim metod, a ty to proste rozsekas do posledniho, pekne..
Diky za odpoved