ajaxové formuláře, payload a snippety

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

Ahoj,
mám problém s odesíláním ajax formuláře pomocí livequery. Při prvním odeslání vše proběhne v pohodě, při druhém dojde k přesměrování. Kód je následující:

js:

<script>
       $(function () {
        $("form").livequery('submit',function () {
                $(this).ajaxSubmit();
                return false;
        });
        $("form :submit").livequery('click',function () {
                $(this).ajaxSubmit();
                return false;
        });
      });
</script>

fce na zpracování formuláře

<?php
    public function formSubmitted(SubmitButton $form) {

        $this->invalidateControl('form');

        if(!$this->isAjax())
        {
           $this->redirect('default');
        }

    }
?>

Když do fce zpracovávající form přidám $this->sendPayload(); tak už k přesměrování nedochází, ale už se pro změnu neodešle v payloadu kód snippetu. Když však do payloadu něco sám přidám ($this->payload->test = 1;) tak se ta proměnná v payloadu odešle.

<?php
    public function formSubmitted(SubmitButton $form) {

        $this->invalidateControl('form');

        if(!$this->isAjax())
        {
           $this->redirect('default');
        }
        else {
           $this->sendPayload();
       }
    }
?>

Rád bych dosáhnul toho, že se bude možno formulář ajaxově odeslat i podruhé a i podruhé se mi překreslí snippet :) Poradíte? Díky moc!

Nette 0.9.3, PHP 5.2

Honza Kuchař
Člen | 1662
+
0
-

Řešilo se to už mnohokráte. Hledej livequery v souvislosti s Nette.