poslední sobota - formuláře v nette 2.1

22

Click here to load reader

Upload: david-grudl

Post on 19-Jun-2015

1.095 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Poslední Sobota - Formuláře v Nette 2.1
Page 2: Poslední Sobota - Formuláře v Nette 2.1

LOW LEVEL

Low-level přístup je obdobou práce s $_POST, ale dostáváme ošetřené data.

Page 3: Poslední Sobota - Formuláře v Nette 2.1

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[]"

Page 4: Poslední Sobota - Formuláře v Nette 2.1

$values = $form->getHttpData(

$form::DATA_TEXT, 'sel[] ');

Pole zatržených checkboxů pak získáme metodou getHttpData()

Page 5: Poslední Sobota - Formuláře v Nette 2.1

KRESLENÍ

Page 6: Poslední Sobota - Formuláře v Nette 2.1

<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

Page 7: Poslední Sobota - Formuláře v Nette 2.1

Renderování, například RadioListu, po jednotlivých elementech.

Page 8: Poslední Sobota - Formuláře v Nette 2.1

<label><input>...</label>

Checkboxy a radiolisty se nyní renderují v tomto praktičtějším tvaru.

Page 9: Poslední Sobota - Formuláře v Nette 2.1

Bootstrap 2 & 3

Příklady najdete v /examples/forms

Page 10: Poslední Sobota - Formuláře v Nette 2.1

$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.

Page 11: Poslední Sobota - Formuláře v Nette 2.1

FÍČURY

Page 12: Poslední Sobota - Formuláře v Nette 2.1

Form::INTEGERForm::URL

Form::INTEGER přetypuje na integerForm::URL doplní chybějící http://

Page 13: Poslední Sobota - Formuláře v Nette 2.1

addRule($form::MAX_LENGTH, …, $form['max']

);Každé pravidlo lze provázat dynamicky s hodnotou jiného prvku.

Page 14: Poslední Sobota - Formuláře v Nette 2.1

$form->addCheckboxList()

Novinkou je CheckboxList

Page 15: Poslední Sobota - Formuláře v Nette 2.1

MULTIPLE FILE

UPLOAD

->addUpload('files', 'Soubory', TRUE);

Page 16: Poslední Sobota - Formuláře v Nette 2.1

$input-> setOmitted() 

Vynechá prvek z $form->getValues()

Page 17: Poslední Sobota - Formuláře v Nette 2.1

$button-> setValidationScop

e([…])Lze omezit, které prvky má tlačítko validovat. NULL znamená všechny!

Page 18: Poslední Sobota - Formuláře v Nette 2.1

Jak psát vlastní prvky?

Psát vlastní prvky je nyní mnohem jednodušší. Příklad najdete v /examples/forms/DateInput.php

Page 19: Poslední Sobota - Formuláře v Nette 2.1

ChoiceControl MultiChoiceControl

Pokud vytváříte prvek pro výběr z více možností, můžete podědit tyto abstraktní třídy.

Page 20: Poslední Sobota - Formuláře v Nette 2.1

Nette\Forms\Helpers::

createSelectBox()

Snadno vygeneruje <select>

Page 21: Poslední Sobota - Formuláře v Nette 2.1

Nette\Forms\Helpers::

createInputList()

Snadno vygeneruje skupinu <input>ů

Page 22: Poslední Sobota - Formuláře v Nette 2.1

@davidgrudl

@geekovo