čtvrtek 7. prosince 2006

HTML Framework 2 - Input

Dalším formulářovým políčkem, které chci probírat je input. Možností, jak jej využít je mnoho, stačí se podívat třeba sem.

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.

1 komentář:

  1. Parada akorat si neumim dobre predstavit, jestli jsem to tedy dobre pochopil.

    Budu 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

    OdpovědětVymazat

Když programátor založí a řídí firmu

Jako malý jsem chtěl být popelářem. Ani ne tak proto, že bych měl nějaký zvláštní vztah k odpadkům, ale hrozně se mi líbilo, jak...