LOW LEVEL
Low-level přístup je obdobou
práce s $_POST, ale dostáváme
ošetřené data.
Potřebujeme vykreslit checkboxy u záznamů,
které čteme z databáze. Dopředu nevíme, kolik
jich bude, jaké budou mít ID. Rovnou proto
kreslíme checkboxy do šablony s name="sel[]"
$values = $form->getHttpData(
$form::DATA_TEXT,
'sel[] '
);
Pole zatržených checkboxů pak
získáme metodou getHttpData()
KRESLENÍ
<form n:name=myForn>
<label n:name=user>
<input n:name=user>
<select n:name=country>
<textarea n:name=note>
</form>
Šablonu s formulářem snadno
propojíte pomocí atributů n:name
Renderování, například RadioListu, po
jednotlivých elementech.
<label><input>...</label>

Checkboxy a radiolisty se nyní
renderují v tomto praktičtějším tvaru.
Bootstrap
2&3
Příklady najdete v /examples/forms
$form->
getOwnErrors()
Renderujte chybové hlášky přímo u
každého prvku. Nad formulář
umístěte jen nepřiřazené hlášky.
A dejte formuláři focus.
FÍČURY
Form::INTEGER
Form::URL
Form::INTEGER přetypuje na integer
Form::URL doplní chybějící http://
addRule(
$form::MAX_LENGTH,
…,
$form['max']
);
Každé pravidlo lze provázat
dynamicky s hodnotou jiného prvku.
$form->
addCheckboxList()
Novinkou je CheckboxList
MULTIPLE
FILE
UPLOAD
->addUpload('files', 'Soubory', TRUE);
$input->
setOmitted()
Vynechá prvek z $form->getValues()
$button->
setValidationScope
(*…+)
Lze omezit, které prvky má tlačítko
validovat. NULL znamená všechny!
Jak psát
vlastní prvky?
Psát vlastní prvky je nyní mnohem
jednodušší. Příklad najdete v
/examples/forms/DateInput.php
ChoiceControl
MultiChoiceControl
Pokud vytváříte prvek pro výběr z
více možností, můžete podědit tyto
abstraktní třídy.
NetteFormsHelpers::

createSelectBox()
Snadno vygeneruje <select>
NetteFormsHelpers::

createInputList()
Snadno vygeneruje skupinu <input>ů
@davidgrudl
@geekovo

Poslední Sobota - Formuláře v Nette 2.1