Replicator a defalt Value
- j0hny
- Člen | 33
Zdravím,
potřeboval bych poradit ohledně replicatoru a addDynamic. Mám formulář kde toto používám, jde pouze o seznam textboxů (čili co jedna replikace to jeden input). Vše funguje jak má, ale potřeboval bych k tomu přidat následující chování:
v session mám pole hodnot. Pokud je pole prázdné, tak chci klasické chování s jedním prázdným text inputem a možností přidat další. Když už ale v poli mám hodnoty, potřeboval bych hned při vytvoření formuláře vytvořit příslušný počet inputů a nastavit jim default values podle pořadí v session (pořadí není až tak důležité), se zachováním možnosti přidávat/odebírat inputy dle libosti.
Replicator používám poprvé, takže se v tom ještě moc neorientuji.
Napdá někoho jak toto realizovat už v továrničce? Chtěl bych se vyhnout javascriptu kterým si ‚naklikám‘ pole až po vytvoření formu a pak je naplním (to považuji za prasečinu).
Díky moc za odpovědi!
Editoval j0hny (15. 10. 2013 15:54)
- David Matějka
- Moderator | 6445
melo by fungovat:
$container = $form->addDynamic(...);
$container->setValues($values);
viz https://github.com/…ontainer.php#L226
kde $values
bude pole ve zhruba nasledujicim tvaru:
[
1 => [foo => value1],
2 => [foo => value2]
]
jen si musis dat pozor, aby se to vytvarelo pouze pri inicializaci formulare a ne po jeho odeslani – to si overis pres
$form->isSubmitted();
jen je problem, ze toto vyzaduje jiz pripojeni formulare k presenteru, takze bud musis pri inicializaci formu
$form = new Form($this, $name);
kde $name
je nazev komponenty odpovidajici
createComponent* metode
nebo to isSubmitted()
volat treba z action* metody
presenteru
if(!$this['nejakyFormular']->isSubmitted()) {
$this['nejakyFormular']['dynamickyKontejner']->setValues();
}