Zpracování více formulářů přes jeden submit
- laadis
- Člen | 2
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
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š.