Ajax AppForm + ajax redirect

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

Zdravim, na zaklade tohoto vlakna jsem ufunkcnil formular pouzivajici ajax.
Pri neuspesnem vyplneni formulare se odesle ajaxem a zpatky se vrati cely form vcetne zvyraznenych chyb.
Vse funguje jak ma az do chvile kdy formular vyplnim spravne, v tu chvili se totiz neprovede presmerovani ktere mam v obsluze.

<?php
public function OkClicked(SubmitButton $form) {
		$values = $this->getValues();
		...
		InstanceHandler::get('DB')->commitTrans();
		$this->getPresenter()->flashMessage(_("Kategorie byla uložena."));
		$this->getPresenter()->redirect("default");
}
?>

Pomoci Firebugu jsem zjistil ze se prijima nasledujici odezva, ktera se jiz nezpracuje:
{"redirect":"http:\/\/php5..../cs\/admin-cms\/default\/0\/?_fid=41f7"}

Da se nejak jednoduse dopsat obsluha, ktera by zajistila redirect na pozadovanou stranku? Pripadne co delam spatne? Mohli byste nekdo poskytnout aktualni funkcni ajaxovou verzi nette.js?

Diky za jakekoliv nakopnuti spravnym smerem…

Jod
Člen | 701
+
0
-

Honzovi asi chýba v tom jQuery plugine obluha redirect parametru. Buď si pridaj, že keď príde redirect presmeruje sa pomocou location.href, alebo si počkaj kým to tam pridá, už som mu písal.

Btw, po odoslaní robím redirect aj ja, ale viac sa mi páčil forward ktorý mi nepresmeroval stránku ale len vrátil výstup z dannej akcie. Bohužial takto mi nefungovali flashMessages a stále nefungujú :(

Honza Marek
Člen | 1664
+
0
-

Plugin netteAjaxSubmit může zpracovávat v callbacku vrácená data. Pro to přesměrování by to vypadalo asi takto:

$.netteAjaxUpload(function (data) {
	if (data.redirect) {
		window.location.href = data.redirect;
	}
});

Asi by se to vyplatilo přidat do defaultního zpracování, co myslíte? Zatím se samy zpracovávají jen snippety.

Jod
Člen | 701
+
0
-

Jj, prosímťa pridaj to tam, dík :)

Honza Marek
Člen | 1664
+
0
-

Přidal jsem to. Pro zprovoznění je třeba aktualizovat funkci netteAjax, ne tu submitovací.

zdvori
Člen | 10
+
0
-

Honza M. napsal(a):

Přidal jsem to. Pro zprovoznění je třeba aktualizovat funkci netteAjax, ne tu submitovací.

Vyresno, DIKY moc vsem zucastnenym :)