Persistentní parametry a ajax

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

Mám jednu jednoduchou otázku. Lze nějak posílat persistentní parametry i pomocí AJAXe přes formulář?

Klasicky bez ajaxu bych z formuláře napsal redirect, ale při ajaxu když dám redrawControl, tak se persistentní parametry nemají jak do formuláře dostat:

<?php
    /** @var int|NULL @persistent */
    public $author;

    /** @var string @persistent */
    public $sort;

...
       $form->onSuccess[] = function ($values) {
            $this->redirect('this', [
                'author'       => $values->author,
                'sort'         => $values->sort,
            ]);
        };
?>
F.Vesely
Člen | 369
+
0
-

Mne persistentni parametry s ajaxem a formularem normalne funguji, prekreslujes i ten formular pomoci redrawControl?

Oli
Člen | 1215
+
+1
-

Jen dodám, že pokud nepoužíváš history doplněk, tak se ti nepřekreslí URL, ale ty persistentní parametry by měli být změněny. Zkus si to lognout.

AlesMenzel
Člen | 13
+
0
-

Proč vlastně není formulář komponentou (resp. nemá metodu redrawControl a musí se obalit do komponenty [potomka Control], aby šel překreslovat) ?

AlesMenzel
Člen | 13
+
0
-

F.Vesely napsal(a):

Mne persistentni parametry s ajaxem a formularem normalne funguji, prekreslujes i ten formular pomoci redrawControl?

Formulář metodu redrawControl nemá, viz https://api.nette.org/…UI/Form.html a nechci překreslovat celý presenter. Jediným řešením je obalit formulář do Control.

Oli
Člen | 1215
+
+1
-

To je správné řešení, ale není nutné. Můžeš si formulář vytvořit v presenteru a v šabloně ho obalit snipetem. Potom jen invaliduješ v akci ve které formulář voláš… Tím překreslíš jen formulář a nemusíš vytvářet celou komponentu.