Co se zavolá po submitu formuláře v šabloně
- Sekyscz
- Člen | 10
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
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
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)