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
+
0
-

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
+
0
-

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');
}