Ajax Formulář a zpracování odpovědi
- Mesiah
- Člen | 240
Ahoj,
prosím Vás, mám formulář, ten odesílám pomocí AJAXu na server, vše jede
téměř jak má, prostě paráda.
Problém mám v tom, že bych chtěl zobrazit děkovnou flash zprávičku až
po tom, co jsou data z formuláře zpracována na serveru a je vrácený
invalidovaný snippet, abych ji mohl zobrazit pomoci animace.
Samotné odesílání mám řešeno takto
<script>
$("form :submit").click(function () {
$(this).ajaxSubmit(afterAjax);
return false;
});
...
function afterAjax() {
$('#message').show("slide", { direction: "right" }, 400);
}
</script>
Mám za to, že po úspěšném provedení ajaxSubmit se zavolá fce afterAjax() která zobrazí zprávičku. Problém je, že snippet se zprávičkou se jakoby nepřipojí do DOM stránky – prostě se nezobrazí.
Když to udelám více/méně klasicky
<script>
$("form :submit").click(function () {
$(this).ajaxSubmit();
$('#message').show("slide", { direction: "right" }, 400);
return false;
});
</script>
tak se zprávička zobrazí, ale nejprve začne vyjíždění a pak se tam
obsah zprávičky prostě „plácne“, což není hezké. Hezké by bylo
počkat na obsah zprávičky a až ji mám, tak s ním vyjet a zobrazit
uživateli…
Můžete mi prosím poradit, kde je problém? Díky!
- Melmen
- Člen | 132
Nečetl jsem to celý, ale nehledáš něco jako
public function afterRender()
{
if ($this->isAjax() && $this->hasFlashSession())
$this->invalidateControl('flashes');
}
? Viz Tutoriál na AJAX :)