Předání hodnot z formuláře do jiného formuláře

Polki
Člen | 553
+
0
-

Ahoj ahoj.
Zase já s další otázkou pro chytré hlavičky.
Takže. :)

Mám formulář, který se vyplní a odešle. Na základě vypočítané hodnoty z formuláře se předvyplní jiný formulář, ale na té samé stránce. (Jen se ajaxem překreslí druhý formulář.)

Problém je, že po odeslání toho druhého formuláře nemá data z toho prvního. Tím pádem to padá.

aneb:
Form1:

public function onSuccess(Form $form, ArrayHash $values)
{
	if($this->isAjax()) {
    	$this->secondFormFactory->data = $values;
        $presenter->redrawControl('modals');
	}
}

Form2: (factory)

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

	if ($this->data) {    	// Při vykreslování formuláře díky vykonání onSuccess metody ve Form1 je podmínka TRUE
		$form->addHidden('jsouData', true);
	} else {				// Při odesílání Form2, kdy se znovu zavolá tato metoda create() je kvůli nenastavení $this->data podmínka FALSE
		$form->addHidden('jsouData', false);
	}

    $form->addSubmit('submit', 'odeslat')
    	->setAttribute('class', 'ajax');

	return $form;
}

Form2: (success)

public function onSuccess(Form $form, ArrayHash $values)
{
	bdump($values->jsouData); /// Vždy vypíše false, což je nežádoucí, jelikož potřebuji podle proměnné data přidávat do formuláře prvky a v případě, že po odeslání data nejsou nikdy nastavena tyto prvky neexistují i když je v prohlížeči uživatel vytvořil.
}

PS: musím mít Form2 jako samostatnou komponentu, jelikož obsah proměnné $this->data nakonec může přicházet odkudkoliv a ne jen z jiného formu a Form2 používám na více místech v aplikaci, kde se Form1 liší. Tedy Form1 je pokaždé jiný, ale Form2 je vždy stejný.

Editoval Polki (12. 1. 2019 11:28)

Polki
Člen | 553
+
+1
-

Tip: Přidám data do session. Ale to mi nepřijde dostatečně dobré řešení.