Nezobrazují se flash zprávy
- demonic
- Člen | 19
Zdravím,
setkal jsem se se zajímavou chybkou.
Po odeslání emailu a přesměrování se nezobrazí flashMessage (forum jsem
pročítal a nic nezebaralo, konstruktor nikde nepřepisuji ani nic podobného).
Bez přesměrování s zpráva vypíše.
Používám nejnovější nette.
<?php
private function sendMail($values) {
$body = "
<table border='1' bordercolor='#FFCC00' style='background-color:#FFFFCC' width='100%' cellpadding='3' cellspacing='3'>
<tr>
<td>Jméno a příjmení:</td>
<td>$values[name] $values[surname]</td>
</tr>
<tr>
<td>Email:</td>
<td>$values[email]</td>
</tr>
<tr>
<td>Poptávka:</td>
<td>$values[message]</td>
</tr>
</table>
";
$mail = new Message;
$mail->setFrom('...')
->addTo('...')
->setSubject('Nezávazná poptávka')
->setHTMLBody($body)
->send();
}
public function contactFormSubmitted($form) {
try {
$this->flashMessage('Děkujeme, Vaše poptávka byla odeslána, budeme Vás kontaktovat.', 'success');
$this->sendMail($form->values);
$this->redirect('this');
} catch (\Nette\InvalidStateException $e) {
$form->addError('Nepodařilo se odeslat e-mail, zkuste to prosím za chvíli.');
}
}
?>
Editoval demonic (7. 2. 2013 14:26)
- Majkl578
- Moderator | 1364
Šaman napsal(a):
Já ještě nechápu, jak se ti může něco vypsat když zakomentuješ redirect. Skoro to vypadá, že se ti to z nějakého důvodu redirectuje samo a tímto se to stane dvakrát a podruhé už bez _fid v adrese.
Poměrně jednoduše, flash zprávička se nastaví a následně se ihned použije, zkus si to. :)
- greeny
- Člen | 405
Řeším stejný problém – po odeslání formuláře je v kódu flashMessage, hned potom redirect – flashMessage se nezobrazí.
Funguje to pouze když už předtím flashMessage existuje – když ve startupu vypisuju nějakou flashMessage, pak se zobrazí.
?_fid= tam mám, v session jsou ty zprávy jen když se vypisujou – chyba bude buď někde v Nette nebo v kódu.