Jak poslat data z formulare do formulare

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

Dobry den, moc se omlouvam, ale nejak se mi z toho uz mota hlava.

Potrebuji vyrobit:

Formular, dve tri pole ktere se vyplni – clovek vypise, odesle a po stisknuti trebas „next“ se zobrazi dalsi formular, ktery bude mit cas inputu z puvodniho a jiz predvyplnene hodnotami, ktere zadal plus k tomu tma pribude dalsi input prazny a po odeslani tohoto se vse teprve ulozi do db.

Vim jak vyrobim formular, vim jak nactu defaultni data do formulare z DB, vim jak je do DB ulozim, ale nedari se mi nacpat do formulare data z predesleho formulare, aniz bych to mezi tim musel ukladat do DB.

Moc prosim o radu, nepotrebuji kod jak to spachat, ale jen klidne teoreticky nasmerovat.

Dekuji moc

Matúš Matula
Člen | 257
+
0
-

Bud mozes pri spracovani 1.formulara presmerovat na dalsiu stranku (view) a predat parametre cez url – to sa mi moc nepaci.
Alebo si tie data niekam ulozis (session, ak sa ti nepaci db) a pri naplnani 2. formulara vytiahnes data odtial

Filip Procházka
Moderator | 4668
+
0
-
protected function createComponentFormularJedna($name)
{
	$form = new Nette\Application\AppForm($this, $name);

	/* definice formuláře ... */

	$form->onSubmit[] = array($this, 'FormularJednaStoreAndRedirect');

	return $form;
}

public function FormularJednaStoreAndRedirect(Nette\Application\AppForm $form)
{
	$session = Nette\Environment::getSession('StoredForm.Data');
	$key = $this->getAction(TRUE) . '#' . $form->getName();

	$session[$key] = $form->getValues();
	$this->redirect('next');
}
public function actionNext()
{
	$session = Nette\Environment::getSession('StoredForm.Data');
	$key = ":Cely:Nazev:Cesty:K:Presenteru:A:Nazev:akce#formularJedna";
	if (!isset($session[$key])) {
		$this->redirect('before'); /* zpátky na původní formulář */
	}

	unset($session[$key]);
	$this['formularDva']->setValues($session[$key]);
}

protected function createComponentFormularDva($name)
{
	$form = new Nette\Application\AppForm($this, $name);

	/* definice formuláře ... */

	return $form;
}
Neonode
Člen | 9
+
0
-

Dekuju moc, funguje to krasne
/no1