Latte n:name textarea a Forms nastavení hodnoty
- ronadlisko
- Člen | 2
Zdravím všechny. Při vytváření formulářů na svých stránkách jsem zvolil metodu propojení formulářů s existující šablonou, tedy v Latte šablonách používám n:name makra. Když chci přidat do value jednotlivých inputs v šabloně hodnoty, u všech to funguje korektně, až na prvek textarea. Ukázka kódu:
Form:
$form->addText('playerName');
$form->addText('playerBirthNumber');
$form->addTextArea('playerInfo');
Šablona:
<input type="text" n:name=playerName value="{$entries[0]}" required> // v pořádku, hodnota se zobrazí
<input type="text" n:name=playerBirthNumber value="{$entries[3]}"> // v pořádku, hodnota se zobrazí
<textarea n:name=playerInfo rows="3">{$entries[6]}</textarea> // chyba, nezobrazí se žádná hodnota
Nefunguje ani prostý zápis:
<textarea>Cokoliv</textarea>
Po odebrání makra n:name u elementu textarea se předaná či jinak zapsaná hodnota zobrazí a vše funguje. Jde o chybu nebo dělám něco špatně? Našel jsem podobný příspěvek (https://forum.nette.org/…ue-v-sablone), kde vypsání proměnné vyřešili metodou:
$form->setDefaults(['nazev_textarea' => 'vychozi hodnota'])
Já chci ale zapisovat do obsahu textarea zapisovat až v šabloně při předání proměnných z presenteru, stejně jako u ostatních inputs.
- Alsatian
- Člen | 175
Ahoj, tady se dozvíš, jak na to:
https://doc.nette.org/…eating-posts
Ruční vykreslení formuláře v šabloně s textarea vypadá nejzákladněji takto (kde editForm je název tvého formuláře):
{form editForm}
<textarea n:name="mujtext"></textarea>
{/form}
Pokud chceš nastavit velikost (řádky) textarea, udělej to už při
vytváření (setAttribute – rows):
->setDefaultValue(‚Lorem ipsum‘) – nastaví výchozí text, pokud
chceš
->setAttribute(‚rows‘, 3) – nastaví počet řádků, tedy velikost
textarea prvku
$form->addTextArea('mujtext','Text před položkami faktury')
->setAttribute('rows', 3)
->setDefaultValue('Výchozí text, pokud není nic zadáno.');
Editoval Alsatian (7. 10. 2018 19:29)
- ronadlisko
- Člen | 2
Díky za odpovědi a nakopnutí. Ruční vykreslení formuláře mám již správně nastaveno a metody pro přidání řádků a nastavení default hodnoty použiju dle rady již v dané formulářové komponentě, kterou mám injecktnutou do příslušného presenteru. Zatím jsem věci ohledně inputů (validace HTML 5, apod.) řešil přímo v šabloně, stejně jako vykreslení příslušných hodnot přímo z presenteru. Dle vašich rad vše vyřeším již v dané komponentě (továrně) pro uvedený formulář, tedy jak validaci, tak i předání výchozích hodnot.