AJAXový „redirect“ / „refresh“ samotné komponenty
- mlha
- Člen | 58
Netušíte jak v PHP pustit obnovení komponenty vyvolané z ní samé?
Komponenta obsahuje formulář dvojí podoby, který se odesílá AJAXově.
Při zpracování POSTu se formulář sestaví do původní podoby, aby
správně přijala a zvalidovala data.
Následuje propis do DB.
Pak bych ale potřeboval celou komponentu nějak vyresetovat, aby se formulář
sestavil v nové (zcela odlišné) podobě. Nebo celý request začít
zpracovávat nanovo.
Použitím $this->redirect(‚this‘); refreshnu celou stránku, což je ale
zbytečné.
Nabízí se mi tři teoretická řešení:
1) V rámci stejné requestu zahodit vytvořenou komponentu a vytvořit ji od
začátku
2) V rámci stejného requestu zavolat v PHP „AJAX subrequest“, který
vrátí odpověď místo původního
3) Vrátit odpověď prohlížeči, kde bude (JS) pokyn k dalšímu AJAX
requestu
Děkuji za případné podněty
- mlha
- Člen | 58
Existuje v Nette nějaký způsob, jak v rámci stejné requestu zahodit
vytvořenou komponentu a vytvořit ji od začátku?
Po spracování signálu by se komponenta „vyčistila“ – tzn. odpojila od
presenteru a na jejím místě by se vytvořila její nová instance.
Lze vůbec nějak odpojovat komponenty z presenteru?
Lze za běhu měnit signály?
Editoval mlha (17. 4. 2012 13:36)
- mlha
- Člen | 58
Našel jsem řešení mého problému. Upravil jsem „AJAX Nette Framework plugin for jQuery“ a používám standardní redirect. Takže to vyhrála varianta 3).
úprava:
...
if (payload.redirect) {
//window.location.href = payload.redirect;
$.post($.nette.href = payload.redirect, $.nette.success);
return;
}
...
Děkuji za spolupráci.
St.
Editoval mlha (15. 5. 2012 21:47)