Ruční vykreslení formulářů – checkbox

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MartinitCZ
Člen | 580
+
0
-

Snažím se v Nette 2.2.3 vykreslit checkbox a podle dat v šabloně ho případěn zaškrtnou.
Toto se mi bohužel nadaří. Jaké atributy nastavit, aby byl checkbox zaškrtnutý?
Zkoušel jsem toto:

{input types-$type-valid, checked => checked, value => TRUE}
{input types-$type-valid, value => TRUE}
{input types-$type-valid, checked => checked}

Ani v jedno případě se chckbox nezaškrtne. :/

Editoval MartinitCZ (16. 9. 2014 13:53)

CZechBoY
Člen | 3608
+
-1
-

Ho zaškrtni v komponentě rovnou ne?

$form->addCheckbox('asdf')->setValue(true);

Editoval CZechBoY (16. 9. 2014 13:57)

MartinitCZ
Člen | 580
+
0
-

CZechBoY napsal(a):

Ho zaškrtni v komponentě rovnou ne?

$form->addCheckbox('asdf')->setValue(true);

podle dat v šabloně ho případěn zaškrtnou
:/
Kdybych ho mohl zaškrtnout ve formu, tak to udělám.

David Matějka
Moderator | 6445
+
+1
-

zkus:

{?$form['foo']->setValue(true)}

Editoval matej21 (16. 9. 2014 14:06)

MartinitCZ
Člen | 580
+
0
-

Joo ta funguje. Nicméně toto asi není v pořádku né?

Editoval MartinitCZ (16. 9. 2014 15:14)

David Matějka
Moderator | 6445
+
0
-

no spis nevim, jestli je v poradku se az v sablone rozhodovat, zda to ma byt zaskrtnuto.

vysvetleni, proc nefunguje to v tvem prvnim prispevku:
od 2.1 (myslim) se pomoci {input checkbox} vykresluje nejen checkbox, ale i jeho label. A cele je to obaleny do html wrapperu. Kdyz tam pridas atributy pomoci {input checkbox foo=>bar} tak se o jejich zpracovani stara formularove makro input, ktere je prida objektu vracenemu z formularove komponenty. Jelikoz ale formularova komponenta nevratila samotny input, ale wrapper, tak to nefunguje.

Alternativou by bylo zcela manualni renderovani checkboxu pomoci dvojtecky:

{label foo:}{input foo: checked=>checked}{/label}

Editoval matej21 (16. 9. 2014 15:34)

MartinitCZ
Člen | 580
+
0
-

Na tuto změnu jsem zapomněl.
Osobně bych to také raději řešil už dříve, jenže to bych musel dělat foreach na 2×.
Pro úpravu dat a ještě k tomu vykreslení.