Zpracování více formulářů přes jeden submit

laadis
Člen | 2
+
0
-

Dobrý den,
prosím o pomoc nebo tip, jak v presenteru zpracovat dva formuláře přes jeden submit.

Obsah souboru ParcelsPresenter.php

<?php
public function createComponentParcelForm() {
	$stores = $this->stores->getStoresPairs();
    $form = (new \App\Forms\ParcelForm)->create($stores);
	$form->setTranslator($this->translator);
    $form->onSuccess[] = [$this, 'parcelFormSucceeded'];
    return $form;
}

public function parcelFormSucceeded($form,$values) {
	\Tracy\Debugger::barDump($values,"ParcelForm");
}

public function createComponentCustomerForm() {
    $countries = $this->countries->getCountriesPairs();
	$form = (new \App\Forms\customersForm)->create($countries);
    $form->setTranslator($this->translator);
    $form->onSuccess[] = [$this, 'customerFormSucceeded'];
   	return $form;
}

public function customerFormSucceeded($form, $values) {
	\Tracy\Debugger::barDump($values,"CustomerForm");
}
?>

Potřebuji v metodě parcelFormSucceeded zpracovat data z formuláře CustomerForm, jak lze tohoto dosáhnout přes ten submit, který je ve formuláři ParcelForm ?

Děkuji za rady.

jiri.pudil
Nette Blogger | 1032
+
+3
-

Ahoj, obávám se, že tohle nepůjde, už jenom proto, že formuláře takhle nefungují: prohlížeč pošle data jenom z toho formuláře, který uživatel odešle. Takže abys měl k dispozici všechna data, musíš je mít všechna v jednom formuláři. Logického rozčlenění v kódu ale můžeš dosáhnout i jinak, například tím, že ty dílčí formuláře implementuješ jako kontejnery a poskládáš je dohromady tak, jak potřebuješ.