více editačních formulářů na v jedné šablobě
- JanBE
- Člen | 62
Zdravím Vás,
potřeboval bych nasměrovat. Potřebuji na jednom místě v aplikaci vytvořit editační tabulku, přes kterou bude možné editovat záznamy z DB. (datagridy používat nechci). Tzn. počet editačních formulárů = počet záznamů v tabulce z DB. Záznamy z db by se rovnou vypisovali do formuláře, který by byl jednořádkový a jedním kliknutím na příslušný submit, by se změny uložily.
Mám vytvořený formulář v komponentě, ve které se nastaví data z definovaného id:
protected function createEditForm()
{
$form = new Form;
$form->addHidden('id');
$form->addText('count', '')
->setRequired();
$form->addText('name', '')
->setRequired();
$form->addText('surname', '')
->setRequired();
$form->addSubmit('send', 'Save');
$form->onSuccess[] = array($this, 'actionTarget');
$set = $this->database->table('committee')->get(6);
$control->setDefaults($et->toArray());
return $form;
}
který volám v šabloně:
{control editCommitteeForm}
Napadlo mě udělat něco na způsob:
{foreach $polozkaDB as $p}
{? $presenter->edit($p->id); }
{/foreach}
kde by akce/metoda/komponenta Edit() vytvořila v šabloně pro každé id
editační formulář z komponenty a nějak by mu musela předat id..
Jen nevím jak by měla taková metoda vypadat..
Díky za jakoukoliv pomoc:-)
- JanBE
- Člen | 62
matej21 napsal(a):
pouzij multiplier
Díky za radu. Mám Nette 2.1.2 a laděnka hlásí:
Call to undefined method Nette\Application\UI\Multiplier::render().
Je možný, že by to bylo rozdílnou verzí Nette?
- David Matějka
- Moderator | 6445
Ukaz kod..
tipuju, ze spatne vykreslujes.. musis vykreslovat jednotlive
komponenty pomoci
{control editForm-$id}
- JanBE
- Člen | 62
Výpis v šabloně:
{foreach $table as $i}
{$i->name}
{$i->surname}
{control editForm-$i->id}
{/foreach}
v presenteru:
protected function createComponentEditForm()
{
return new Multiplier(function () {
$form = new Form;
$form->addHidden('id');
$form->addText('count', '')
->setRequired();
$form->addText('name', '')
->setRequired();
$form->addText('surname', '')
->setRequired();
$form->addSubmit('send', 'Save');
return $form;
});
}
Editoval JanBE (22. 3. 2014 15:41)