![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (10%) ![]() ![]() |
witam,
pisze aplikacje wykorzystujac zend framework i chcialbym wykorzystac ajaxa do kilku niewielkich spraw. Przeszukalem internet ale niestety niewiele znalazlem. To co stworzylem do tej pory oparte jest w duzej mierze na artykule Ajax Chat Tutorial ze strony http://devzone.zend.com/article/1581-Ajax-Chat-Tutorial Tak naprawde problem sprawilo mi odswierzanie zawartosci np. div'a zamieszczonego na stronie poprzez ajax. Poczatkowo myslalem ze uda zrobic sie to poprzez stworzenie akcji np. w kontrolerze Index
Nastepnie w zapytaniu ajaxa podac url w postaci http://domena.pl/index/odswierzDiv oraz ew. dodatkowe parametry. Nastepnie w javascript wstawic w div'a to co zwrocila nam nasza akcja np. tak jak ponizej
Niestety to nie zadziala gdyz akcja wymaga pliku widoku. Nawet jak stworzymy dla niej plik widoku to po prostu aplikacja "upycha" w diva caly plik widoku a nie tylko to co zwraca nam akcja odswierzDiv(w rzeczywistosci jest to troche tekstu). Ostatecznie wymyslilem to tak ze w katalogu public utworzylem katalog w ktorym nie ma ustawionych przekierowan(takich jak zalecane przy uzywaniu zf) i w tym katalogu znajduje sie plik php, ktory wykonuje zapytanie do bazy i zwracam mi to co chcialem. Rozwiazanie dziala ale wydaje mi sie to dosc nie eleganckie i wystajace poza Zend Framework. Czy ma ktos lepsze pomysly na rozwiazanie mojego problemu? Wszelkie materialy na temat ZF i Ajax(rowniez w jezyku ang) mile widziane. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mogę polecić Ci dokumentację Zend Framework 1.6. Wykorzystaj zintegrowaną bibliotekę Dojo do zapytań AJAX. W sumie, to w dokumentacji masz wszystko pięknie opisane (tak, trzeba trochę pomyśleć, gotowca tam nie ma). Osobiście z Dojo w ZF jeszcze nie korzystałem, ale podobno jest tam nieźle zintegrowany (z helperami, filtrami itp. itd.).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Oj przeciez to mozna zrobic o wiele latwiej. Ja uzywam zaproponowanego przez Ciebie rozwiazania, zas problem zwracania calej akcji (kodu HTML) rozwiazuje prosto:
Kod $this->_helper->layout()->disableLayout(); $this->view->setNoRender(); I w tym momencie ani layout ani akcja nie sa renderowane zas zwracac mozesz sobie co tylko chcesz. Jest to super rozwiazanie jesli np. nie zalezy ci na szybkosci tej operacji (np. jesli tworzysz cos a la backend czy aplikacja intranetowa). Jednakze ladowanie za kazdym razem calej maszynerii Zenda jest zasobo- i czasozerne zatem dobrze jest wlasnie zrobic sobie katalog z plikami PHP, ktore obsluguje AJAXowe zadania. U mnie w fimie nazwano go 'Raw' i tam lezy czysty kod PHP. W ten sposob dzialajacy kod jest o niebo szybszy niz ten oparty na ZF. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
a można wiedzieć jak to robisz że tego odwołania do pliku jakisplik.php nie interpretuje Ci jako kontrolera?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ustawienia w .htaccessie.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (10%) ![]() ![]() |
chlebik rozwiazalem to dokladnie tak jak piszesz ze robisz to u siebie w firmie ale niestety wada tego jest to ze w tym jedenym katalogu nie ma ustawionego routingu i nie mozna tam skorzystac chociazby z Zend_Db
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 9.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
ja do ajaxu korzystam z Zend_Server_Json, nasluch mam ustawiony na jeden z akcji kontrolera, podpinam do niego tylko odpowiednie klasy i wszystko smiga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , po stronie klienta korzystam z dojo.json.rpc, bardzo czyste i eleganckie rozwiazanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (10%) ![]() ![]() |
ja do ajaxu korzystam z Zend_Server_Json, nasluch mam ustawiony na jeden z akcji kontrolera, podpinam do niego tylko odpowiednie klasy i wszystko smiga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , po stronie klienta korzystam z dojo.json.rpc, bardzo czyste i eleganckie rozwiazanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) mozesz polecic do tego jakies artykuly/tutoriale? czy sam wszystko zrobiles na podstawie dokumentacji? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 9.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
siema, sorka ze dopiero co odpisuje, nie zagladalem cos na forum, dam ci samplowy kod:
klasa:
kontroler:
widok do akcji jsonrpc
javascript przy uzyciu bibliotek dojo:
zwroc uwage ze przy kazdej funkcji ktora chcesz udostepniac z klasy 'JakasKlasa' musisz napisac phpDoc tak jak w przykladzie inaczej server nie bedzie w stanie odpowiednio przetworzyc argumentow i dac oczekiwanej odpowiedzi enjoi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a i tutorial tez jest http://dustint.com/archives/20 btw. zeby skorzystac z Zendowego jsonrpc musisz miec co najmniej wersje 1.6 frameworku, albo skopiowac z niej katalog JSON Ten post edytował sokzzuka 3.10.2008, 01:02:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:45 |