Ajax Formulář a zpracování odpovědi

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

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
+
0
-

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 :)

Mesiah
Člen | 240
+
0
-

Nop. Nejde ani o Nette, ale spíše jQuery s tím související…
Ale i tak díky :)