Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Ajax][jQuery][Zend Framework], problem z obróbką JSON`a
orideith
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 1
Dołączył: 21.07.2006

Ostrzeżenie: (0%)
-----


Witam Was, mam taki mały problem i nie wiem gdzie szukać przyczyny.

Mam taki kod na wysyłanie / odbieranie danych z ajaxa
  1. $('.order_set a').on("click", function() {
  2. var $this, id, status;
  3. $this = $(this);
  4. id = $this.data('id');
  5. status = $this.data('order_status');
  6. $.ajax({
  7. url: '/ajax/orderstatus',
  8. type: 'post',
  9. dataType: "html",
  10. data: {
  11. id: id,
  12. status: status
  13. },
  14. beforeSend: function() {
  15. $('.sorting_disabled').html('<img src="/images/ajax-loader.gif" />');
  16. },
  17. success: function(data) {
  18. $('.sorting_disabled img').fadeOut(200);
  19. var json = $.parseJSON(data);
  20. console.log(json);
  21.  
  22. },
  23. fail: function(jqXHR) {
  24. var json = $.parseJSON(jqXHR.responseText);
  25. console.log(json);
  26. }
  27. });
  28. });


Wszystko działa o ile dataType: jest jako html, jeżeli ustawię jako json to mam komunikat w stylu


Jak widać nagłówki są ok, dane niby też
Kod na wyplucie wygląda tak

  1. public function orderstatusAction() {
  2. if ($this->_request->isXmlHttpRequest()) {
  3. $order_db = new models_order();
  4. $status = $this->_getParam('status');
  5. $id = $this->_getParam('id');
  6. $this->getResponse()
  7. ->setHeader('Content-Type', 'application/json')
  8. ->setBody(json_encode(array('a' => 'b')))
  9. ->sendResponse();
  10. }
  11. }



Jak dam dane jako html to mogę spokojnie się do jsona odwoływać poprzez obiekt, dane sprawdzałem też poprzez http://jsonlint.com/ i oczywiście tablica jest ok.
Co robię nie tak? co może być przyczyną, mogę zostawić html i nic to w sumie nie zmieni ale jednak chciałbym to zrobić zgodnie ze sztuką.

Będę wdzieczny za jakiekolwiek informacje.

Pozdrawiam
Oskar




--------------------
projektowanie stron warszawa ::: projektowanie www ::: projekty www
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$.parseJSON(data);
No ale po co potem jeszcze jsona parsujeszz jsonem? SKoro masz json to ustaw dla ajaxa, ze wynik bedzie json i jquery samo ci zwroci json a ty juz nic nie musisz parsowac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
orideith
post
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 1
Dołączył: 21.07.2006

Ostrzeżenie: (0%)
-----


Z jednej strony masz racje jak dam
  1. success: function(data) {
  2. console.log(data);
  3. },

to data w console daje mi {"a":"b"} jednak jak chce się odwołać czyli daje data.a to mi zwraca undefined co robie nie tak?


--------------------
projektowanie stron warszawa ::: projektowanie www ::: projekty www
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
to data w console daje mi {"a":"b"}

To ci zle daje bo daje ci tekst a nie obiekt. Jakbys poprawnie ustawil parametry wywolania AJAX, jak ci pisalem, to bys dostal obiekt a nie tekst.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
orideith
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 1
Dołączył: 21.07.2006

Ostrzeżenie: (0%)
-----


Masz rację, nie ustawiłem jsona w datatype z pośpiechu i się wkurzam niepotrzebnie, jeszcze raz dzięki.


--------------------
projektowanie stron warszawa ::: projektowanie www ::: projekty www
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:08