dynamický formulář – nevarcí data
- batko
- Člen | 219
Ahoj,
potřebuji mít nálsedující form.
<?php
$form = new Nette\Application\UI\Form();
foreach ($rows as $row) {
$form->addSelect($row->id, $row->name . " => ", $category);
}
$form->addHidden("id", $this->id);
$form->addSubmit("submit", "Uložit");
$form->onSuccess[] = $this->formCategoryFilterProces;
return $form;
?>
Při odeslání a dump($form->getValues(TRUE)) mi to vyhodí jen ID, ale SELECTY to nevrátí.
Bohužel si zde nevím rady.
Díky
- David Matějka
- Moderator | 6445
- pouzij container pro ty selecty, at v tom mas poradek
- po odeslani se http data „mapuji“ na aktualni podobu formu, to znamena, ze i po odeslani musis v te tovarne na formular znovu vytvorit ty selecty, aby nette mohlo overit, ze se nekdo nesnazil podstrcit nejaky falesny data; melo by stacit nastavit id jako persistentni
Editoval matej21 (25. 7. 2013 22:37)
- Šaman
- Člen | 2666
Tuším, že je to proto, že se po odeslání opět vytvoří formulář a
spárují se hodnoty z POSTu s položkami ve formuláři. A pravděpodobně
se podruhé už vytvoří bez těch selectů.
Podívej se na replikátor, myslím, že by se na podobné věci měl
používat.
Anebo mít formulář v samostatné třídě a sestavovat ho v konstruktoru.
- batko
- Člen | 219
matej21 napsal(a):
- pouzij container pro ty selecty, at v tom mas poradek
- po odeslani se http data „mapuji“ na aktualni podobu formu, to znamena, ze i po odeslani musis v te tovarne na formular znovu vytvorit ty selecty, aby nette mohlo overit, ze se nekdo nesnazil podstrcit nejaky falesny data; melo by stacit nastavit id jako persistentni
formulář vyrábím v komponentě, nastavil jsem @persistent ID jak v komponentě tak v presneteru a nic.
AD2 máš pravdu pokud vkládám data natvrdo a neberou id z get parametru tak je to OK, porsistent by měl pmoci ale nějak mi nefunguje…
Editoval batko (25. 7. 2013 23:15)