Ajax AppForm + ajax redirect
- zdvori
- Člen | 10
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
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
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.
- Honza Marek
- Člen | 1664
Přidal jsem to. Pro zprovoznění je třeba aktualizovat funkci netteAjax, ne tu submitovací.