Ruční vykreslení formulářů – checkbox
- MartinitCZ
- Člen | 580
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)
- MartinitCZ
- Člen | 580
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
zkus:
{?$form['foo']->setValue(true)}
Editoval matej21 (16. 9. 2014 14:06)
- MartinitCZ
- Člen | 580
Joo ta funguje. Nicméně toto asi není v pořádku né?
Editoval MartinitCZ (16. 9. 2014 15:14)
- David Matějka
- Moderator | 6445
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
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í.