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