Jak na formulář s počtem prvků závislým na záznamech v databázi?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Grelek
Člen | 233
+
0
-

Zdravím,

potřebuji vytvořit formulář pro editaci záznamů z databáze. Počet prvků je ale na databázi závislý. A potřebuji jej manuálně vykreslit. Čili něco takového.

public function createComponentEditForm()
{
	$form = new Form();

	$items = $this->db->getItems();
	foreach ($items as $item) {
		// přidat dvě pole a přenést id řádku
	}

	$form->addSubmit('send', 'Odeslat');

	$form->onSuccess[] = $this->editFormSubmitted;

	return $form;
}

public function editFormSubmitted(Form $form)
{
	$values = $form->getValues();
	foreach ($values as $value)
		$this->db->where('id', $value->id)->update($value->service, $value->price);
}

Aktuálně to mám řešené/neřešené. Nějak to funguje, ale rozhodně to nefunguje tak, jak chci. Potřebuji si ve formuláři nějak přenést id, service a price pro následný zápis do databáze – řádek se identifikuje pomocí id.

S Nette dělám po nějaké době a nenapadá mě, jak to vyřešit.

Editoval Grelek (7. 8. 2013 19:49)

Oli
Člen | 1215
+
0
-

Myslim, ze to co potrebujes je replicator (addDynamic). Nějak tak to je v doplncich. Jsem na mobilu, tak se me nechce hledat link.

saimons
Člen | 293
+
0
-

Dal by se na to pouzit i Container, ktery neni uveden v dokumentaci, ale tady: https://doc.nette.org/cs/forms#…

Editoval saimons (8. 8. 2013 0:56)