Defaultní hodnoty v latte při manuálním vykreslování formuláře
- Gogokt
- Člen | 15
Zdravím,
řeším jednoduchou věc.
Chci manuálně vykreslit formulář a potřebuji do něj dostat defaultní hodnoty načtené z DB.
v Latte:
{form userDetailForm}
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="frm-userDetailForm-uzjmeno">First name</label>
<input type="text" name="uzjmeno" class="form-control" id="frm-userDetailForm-uzjmeno" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationCustom02">Last name</label>
<input type="text" class="form-control" id="frm-userDetailForm-uzjmeno" value="" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
{/form}
v presenteru:
$dataDB = $this->database->table('users') -> where('idusers',$this->getUser()->identity->getId())->fetch();
$form = new Form;
$form->addText('uzjmeno', 'Přihlašovací jméno:')->setRequired('Zadejte prosím jméno');
$form->addPassword('heslo', 'Heslo:')
Jaké makro použít v latte do value?
Díky za nakopnutí…
- David Matějka
- Moderator | 6445
ahoj, formulare se manualne vykresluji pomoci makra {input}
a
{label}
, pripadne n:name
, viz doc
… pak se ti tam hodnoty nastavene pres setDefaults/setDefaultValue
dostanou samy
- Gogokt
- Člen | 15
Už jsem na to přišel také přišel, ale mám další dílčí problém…
Jsem začátečník, nevím jak která metoda co dělá.
Prokousávám se pomalu nette. Chci ho používat s https://getbootstrap.com/. Občas narazím na přesně takový detail.
Potřebuji abych po použití makra {input name} měl parametr required čili
<input type="text" class="form-control" id="validationCustom02" value="Otto" required>
co použít za metodu v presenteru…
Díky…
- fvottus
- Člen | 5
<input n:name="uzjmeno" class="form-control" >
id
a name
ti Nette uz doplni samo.
required
, value
, atd.. se nastavi na zaklade toho co
das k inputu
Napr. pokud zavolas
$form->addText(‚name‘)->setRequired()
, tak se k tagu da
i attribute required
a jeste netteforms attribute pro JS
client-side validaci.
Editoval fvottus (19. 11. 2020 22:10)
- Gogokt
- Člen | 15
Nicméně pro někoho kdo bude hledat jako já, zatím mám tuhle funkční konstrukci:
Presenter:
$form->addText('jmeno', 'Jméno:')->setRequired();
$form->addText('prijmeni', 'Příjmení:')->setRequired();
latte:
{form userDetailForm}
<form class="needs-validation" novalidate>
<div class="form-row">
<div class="col-md-6 mb-3">
{label jmeno}
{input jmeno}
<div class="valid-feedback">
V pořádku...
</div>
<div class="invalid-feedback">
Zadejte své jméno...
</div>
</div>
<div class="col-md-6 mb-3">
{label prijmeni}
{input prijmeni}
<div class="valid-feedback">
V pořádku...
</div>
<div class="invalid-feedback">
Zadejte své příjmení...
</div>
</div>
</div>
{/form}
Vím, že je to možná banalita, ale třeba to někomu ušetří čas.