Co se zavolá po submitu formuláře v šabloně

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Sekyscz
Člen | 10
+
0
-

Ahoj, problém je takový, že mám malej formulář napsanej jenom v šabloně od jednoho presenteru a mám tam tlačítko a zajímalo by mě, jaká metoda se zavolá v presenteru po stisknutí toho tlačítka, když má type=„submit“ … nikde nemůžu najít odpověď a nechci tam používat href a podobně.

<button type="submit" class="btn btn-app bg-aqua">Uložit</button>

Editoval Sekyscz (6. 11. 2017 20:16)

Sekyscz
Člen | 10
+
0
-

Stále mi to nefrčí .. celý jsem to předělal podle toho návodu mám teď v šabloně presenteru tohle:

{block content}
    {control newReservationForm}
{/block}

a tohle ve Form komponentě

protected function createComponentForm()
    {
        $form = new \Nette\Application\UI\Form();
        $form->addText('name')->setRequired(true)->addRule(FORM::FILLED, 'Vyplňte vaše jméno!');
        $form->addText('surname')->setRequired(true)->addRule(FORM::FILLED, 'Vyplňte vaše příjmení!');
        $form->addEmail('email');
        $form->addText('phone');
        $form->addText('persons')->setRequired(true)->addRule(FORM::FILLED, 'Vyplňte počet osob!');
        $form->addSelect('services');
        $form->addSubmit('send','Pokračovat')->onClick[] = [$this, 'formSubmitted'];

        return $form;
    }

a pak tu šablonu k tomu

...
<div class="row">
    <div class="box-primary">
         <button n:name="send" class="btn btn-app bg-aqua">
             Pokračovat
         </button>
    </div>
</div>

a v té samé komponentě mám tu metodu, ale nikdy se po stisknutí toho tlačítka nezavolá

public function formSubmitted()

Prostě se to vrátí zpátky do té šablony presenteru bez toho, aby se ta metoda formSubmitted zavolala

Editoval Sekyscz (7. 11. 2017 10:48)

Pavel Kravčík
Člen | 1196
+
0
-

odesílá se pouze v případě, že je odeslání validní

Máš to validní? Neskáče tam nějaký error (třeba i v JS). Pro testování můžeš zkusit tohle:

$form->onSubmit[] = [$this, 'success']

nebo na tlačítko (https://api.nette.org/…ton.php.html#…)

->setValidationScope(FALSE)
Sekyscz
Člen | 10
+
0
-

Už mi to funguje, nakonec chyba byla v tom že jsem měl v šabloně :

<form n:name="form" method="get" >

a ta část method=„get“ to kazila … moc děkuju :)