Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] jquery Ajax przesyłanie danych za pomocą JSON
Forum PHP.pl > Forum > PHP > Frameworki
phpmack
Mam mały problem ze zorganizowaniem wydawało by się prostej rzeczy - chciałbym po stronie widoku mieć skrypt który cyklicznie powiedzmy co 30s będzie odpytywał serwer o nowe dane z bazy, oczywiście za pomocą Ajax-a, przewałkowałem parę tutoriali ale że nigdy z jquery nie miałem nic wspólnego mam mały problem ze zrozumieniem jak takie coś ma działać. Problem w tym że narzazie mam nawet problem z odpaleniem allert() po prawidłowym wykonaniu akcji po stronie serwera
Mój widok:
  1. <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script>
  2. <script type="text/javascript">
  3.  
  4. $(document).ready(function(){
  5. $.ajax({type: "POST",
  6. url: "http://localhost/web/logowanie/public/index/ajax/",
  7. data: {"dane" : {"user" : [{"imie" : "Jan","nazwisko" : "Kowalski"},{ "imie" : "Piotr","nazwisko" : "Nowak"}]}},
  8. dataType: "json",
  9. success: function(){
  10. alert("suces");
  11. }
  12. });
  13. return false;
  14. });
  15. </script>


Czyli z tego co się wyedukowałem - przy załadowaniu strony wysyłam zapytanie ajax-owe do wskazanego skryptu (akcja: ajax) i czekam na odpowiedź serwera:

mój kontroler akcja ajax:
  1. public function ajaxAction()
  2. {
  3. $tab[] = '18.620452880859375';
  4. $tab[] = '54.36499824969855';
  5. $tab[] = '18.62079620361328';
  6. $tab[] = '54.36059742965113';
  7. $tab[] = '18.62285614013672';
  8. $tab[] = '54.3535951532638';
  9.  
  10.  
  11. $this->view->data = json_encode($tab);
  12. echo "jhydtkhydkydk";
  13.  
  14. $this->_helper->viewRenderer->setNoRender();
  15. $this->_helper->getHelper('layout')->disableLayout();
  16. }


czyli tworzę sobie smieciowatego JSON z jakimis danymi i chce je przekazać do aktualnego widoku bez renderowania ajax.phtml no i oczywiście to nie działa rozumie że muszę odebrać jakoś żądanie i dane z niego żeby to zadziałało??
kaem
Zobacz sobie w firebugu(Firefox) czy dragonlfy (Opera) lub cokolwiek tam używasz, czy to żądanie dochodzi do skryptu php i co ewentualnie zwraca.
A to co zwróci wyświetl sobie tak:
  1. success: function(data){
  2. alert(data);
  3. }
phpmack
Wrzuciłem po stronie serwera:
  1. $smieci = $this->getRequest()->getParam('data');

i prawie działa:d tzn. próbuje uzyskać resztę funkcjonalności:D
melkorm
ajaxContext, lub contexSwitch

Nie baw się w żadne decody, encody, wyłączanie layouty, wsio zrobi za Ciebie Zend, od tego przecież jest wink.gif

Co do samego pytania : JS => setInterVal, łączenei z bazą itp to chyba tłumaczyć nie trzeba, masz tego w sieci pełno.
A może nie działać bo zwracane dane nie są JSON'em tylko plain/text bo nie ustawiasz nagłówka wink.gif Chyba że robisz to gdzieś indziej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.