Odeslat parametr do prezenteru zároveň s formulářem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kloban
- Člen | 123
Ahoj, lámu si hlavu s tím, jak dostat parametr v šabloně do presenteru společně s odeslaným formulářem.
V metodě render předám šabloně proměnnou.
public function renderUctenkaNaEmail($pokladniDoklad)
{
$this->template->pokladniDoklad = $pokladniDoklad;
}
V šabloně si jen vypíšu formulář a potřeboval bych krom něj odeslat do prezenteru i tu proměnou.
{block content}
{control uctenkaNaEmailForm}
Formulář je jedno políčko pouze na email
protected function createComponentUctenkaNaEmailForm()
{
$form = new UI\Form;
$form->addText('email', 'Email:')
->setType('email');
$form->addSubmit('odeslatEmejl', 'Odeslat email');
$form->onSuccess[] = $this->seznamUctenkaNaEmailSucceeded;
return $form;
}
Zde formulář zpracovávám a potřebuju tu mít zaprvé email z formuláře a za druhé tu proměnnou $pokladniDoklad.
public function UctenkaNaEmailSucceeded($form, $pokladniDoklad)
{
$values = $form->getValues();
//nejaky kod
$this->flashMessage("Účtenka odeslána na email.");
$this->redirect('platba');
}
Díky za rady…
- petr.jirous
- Člen | 128
Buď si do toho formuláře přidej hidden input a nebo:
protected $pokladniDoklad;
public function actionUctenkaNaEmail($pokladniDoklad)
{
$this->pokladniDoklad = $pokladniDoklad;
}
public function renderUctenkaNaEmail()
{
$this->template->pokladniDoklad = $this->pokladniDoklad;
}
public function UctenkaNaEmailSucceeded($form)
{
$values = $form->getValues();
//nejaky kod
$this->pokladniDoklad;
$this->flashMessage("Účtenka odeslána na email.");
$this->redirect('platba');
}