Multiplier – unikátní ID formulářových prvků
- cmc
- Člen | 6
Ahoj.
Pomocí Multiplier vytvářím na stránce několik formulářů, ale inputy ve
formu dostávají stejné ID.
Je možné nějak docílit toho, aby se jenerovalo unikátní ID?
Zkoušel jsem toto:
V latte vytvořit komponentu a předat ji požadí, ve kterém je vytvořena
($i):
{control "BookControl-$i", $books[$i]->name, $i}
takto to pak vypadalo v kódu:
` $control = new UI\Multiplier(function($name, $index) use ($service, $allBooks)
{
$control = new BookControl();
return $control;
});`
V té komponentě pak vytvářím formulář:
$form->addText('name_' . $this->index, 'Jmeno:')
a v latte mam
toto: {label "name_$index" /}: {input "name_$index"}
Když se podívám do zdrojového kódu stánky je to vygenerováno
správně, ale při odeslání to již nefunguje.
Do funkce processBookForm
v $form->getValues()
nejsou žádné údaje, které jsem tam vyplnil. Navíc očekával bych, že mi
přijde v $form->getValues()
například name_1
,
jenže v seznamu, který mi přijde je jenom name_
(bez
čísla).
EDIT: ještě bych k tomu jenom dodal, že bez toho přidávání indexu k prvkům formáláře mi odeslání formuláře funguje správně.
Editoval cmc (8. 3. 2013 10:06)