Defaultní hodnoty v latte při manuálním vykreslování formuláře

Gogokt
Člen | 15
+
0
-

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
+
+1
-

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
+
0
-

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…

Gogokt
Člen | 15
+
0
-

Respektive pokud bys mi mohl poradit jak se jednoduše dozvědět co která metoda umí byl bych v 7 nebi :) Děkuji…

fvottus
Člen | 5
+
0
-
	<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
+
0
-

jj ale přidá tam další balast…

<input type="text" name="jmeno" class="form-control" id="frm-userDetailForm-jmeno" required data-nette-rules='[{"op":":filled","msg":"required"}]'>
Gogokt
Člen | 15
+
0
-

V zásadě to nevadí, ale je to přesně to co nemůžu kontrolovat. Proto s frameworky nepracoval. Ale už jsem línej tak chci… :)

Kamil Valenta
Člen | 762
+
+1
-

Ten „balast“ má samozřejmě vliv na JS validaci a je dobře, že tam je…

Gogokt
Člen | 15
+
0
-

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.

Gogokt
Člen | 15
+
0
-

Děkuji moc za pomoc…