Ukončení skriptu po provedeni signalu v komponente
- konva
- Člen | 88
Ahoj,
nevím jestli nevymýšlím nějakou kravinu ale …
Chci si udělat komponentu pro upload souborů a využít Uploadify.
Komponenta mi zobrazí jednoduché tlačítko na které když kliknu tak se
zobrazí okno pro výběr souborů, poté co potvrdím se zavolá skript (který
jsem uvedl v konfiguraci uploadify) a ten má za úkol zpracovat a nahrát
soubory. Tady je ukázka http://www.uploadify.com/demos/
No a chci aby to zpracování provedl handle v té komponentě, tedy
v konfiguraci uvedu
$this->link('uploadFile');
který směřuje na funkci
function handleUploadFile(){
// nahraji a zpracuji soubor a vratim JSON
}
v komponentě
A konečně otázka. Jak mohu ukončit zpracování skriptu aby se
nerenderovala šablona komponenty ani presenteru?
Resp. chci si pouze jako JSON vratit nejaka data, ale nechci aby se zpracovavala
cela stranka.
Snad jsem to popsal srozumitelne.
Diky
Lukas
- bazo
- Člen | 620
on chce ukoncit, nie presmerovat.
nahrad redirect za terminate()
alebo este lepsie poslie rovno json odpoved
<?php
$response = new JsonResponse($payload);
$this->presenter->sendResponse($response);
?>
alebo cistejsie
<?php
$response->send($httpRequest, $httpResponse);
?>
Editoval bazo (25. 1. 2014 22:17)
- konva
- Člen | 88
díky. Toto jsem potřeboval
$response = new JsonResponse($payload);
$this->presenter->sendResponse($response);
ale proč je toto
$response->send($httpRequest, $httpResponse);
čistčí řešení?
A čím (vím, že hloupá otázka, ale …) mám naplnit ty proměnné
„$httpRequest, $httpResponse“?
díky
Lukáš
- Pavel Macháň
- Člen | 282
konva napsal(a):
díky. Toto jsem potřeboval
$response = new JsonResponse($payload); $this->presenter->sendResponse($response);
ale proč je toto
$response->send($httpRequest, $httpResponse);
čistčí řešení?
A čím (vím, že hloupá otázka, ale …) mám naplnit ty proměnné „$httpRequest, $httpResponse“?
díky
Lukáš
Pokud seš v prezenteru tak používej
$this->presenter->sendResponse($response);
nevidím důvod si to ručně skládat.
- Patrik Votoček
- Člen | 2221
v Nette 2.1 stačí:
$this->presenter->sendJson(array('some' => 'payload data'));