Generovani json
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- o5
- Člen | 416
Ahoj, s ajaxem zacinam (btw: s nette taky :D ) a nevim presne jak se ma
spravne resit nasledujici…
chtel bych v nette pouzit nasledujici jquery
plugin ale nevim jakym zpusobem generovat soubor data.js (json)
(jen teoreticky)
- to mam pomoci napr. dibi::fetch() ziskat data z db,
- ty pomoci json_encode() dostat do potrebneho tvaru (jako je soubor v examplu pluginu jquery – data.js),
- (a ted nastava to co si myslim ze se dela jinak) a tento string ulozit do souboru data.js (za pomoci fopen(), fwrite(), fclose()) ?
moje reseni mi prijde velice neohrabane, musi existovat lepsi :)
diky
Editoval o5 (2. 2. 2009 13:11)
- Jan Tvrdík
- Nette guru | 2595
o5 napsal moje reseni mi prijde velice neohrabane, musi existovat lepsi :)
Podle mě je to zcela normální řešení a těžko na něm něco zlepšovat. Ale možná se pletu.
- PetrP
- Člen | 587
a co něco takového:
$router[] = new Route('cascade/data.js', array(
'presenter' => 'Cascade',
'action' => 'ajax',
));
// popřípadě cokoli dle libosti
class CascadePresenter extends Presenter
{
public function renderAjax()
{
// např. dibi::fetch() získat data z db
// ty pomoci json_encode() dostat do potřebného tvaru (jako je soubor v examplu pluginu jquery – data.js),
// vypsat je např do šablony, $this->template->data = $data;
// vyřešit si třeba cachování, jestli se data nemění tak často
// popřípadě si s tím dělat cokoli potřebuješ (nezkoumal jsem tu jquery knihovnu)
}
}
//edit
Ještě mě napadá že výchozí .htaccess (z examples) nepouští k nette
soubory *.js to si musíš změnit popřípadě data.js přejmenovat na něco
jiného, jestli na tom názvu nestojí ta knihovna.
Editoval PetrP (2. 2. 2009 14:21)