Formulář se neodešle – stránka se načte znovu bez změny
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- aGr
- Člen | 45
Zdravím,
vytvářím jednoduchý kontaktní formulář. Mám funkce:
public function createComponentContactForm() {
$form = new Form;
$form->addText('name', 'Jméno:');
$form->addText('email', 'Email:');
$form->addTextArea('text', 'Text:');
$form->addSubmit('send', 'Odeslat');
$form->onSubmit[] = callback($this, 'contactFormSubmitted');
return $form;
}
public function contactFormSubmitted() {
echo "x";
$this->redirectUrl('https://nette.org');
}
Vypisuji přes {control contactForm}, vygenerovaný HTML:
<form action="" method="post" id="frm-">
<table>
<tr>
<th><label for="frmcontactForm-name">Jméno:</label></th>
<td><input type="text" class="text" name="name" id="frmcontactForm-name" value="adssad" /></td>
</tr>
<tr>
<th><label for="frmcontactForm-email">Email:</label></th>
<td><input type="text" class="text" name="email" id="frmcontactForm-email" value="sadsadsda" /></td>
</tr>
<tr>
<th><label for="frmcontactForm-text">Text:</label></th>
<td><textarea cols="40" rows="10" name="text" id="frmcontactForm-text">sadsad</textarea></td>
</tr>
<tr>
<th> </th>
<td><input type="submit" class="button" name="send" id="frmcontactForm-send" value="Odeslat" /></td>
</tr>
</table>
</form>
Cíleně jsem odebral veškerá pravidla. Po odeslání formuláře se stránka načte znovu, ale bez změny (contactFormSubmitted se nezavolá → nejsem přesměrován). Díky za jakékoliv rady!
- aGr
- Člen | 45
pilec napsal(a):
Zkus pro začátek zaměnit onSubmit[] za onSucces[] které se používá v nejnovějším nette.
To jsem zapomněl napsat, že nepomohlo.
voda napsal(a):
Nepoužíváš místo Nette\Application\UI\Form Nette\Forms\Form?
Je to tak! Změnil jsem use na „Nette\Application\UI\Form“ a šlape to. Díky moc. Pouze nerozumím proč v tutorialu je napsané Nette\Forms\Form. Je to chyba?