Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax i JSON
Forum PHP.pl > Forum > XML, AJAX
Fluke
Witam.

Mam problem odnośnie przesyłania tablicy JSON za pomocą Ajax`a do skryptu PHP. Korzystam z Zend Framework.
W jQuery mam o to taki kod:
  1. ...
  2. var json = {};
  3. json.zmienna = 2
  4.  
  5. $.ajax({
  6. url: "...",
  7. data: "json="+json
  8. success: ...
  9. });
  10. ...

w kontrolerze mam taki:
  1. $this->_helper->layout->disableLayout();
  2.  
  3. if($this->_request->isXmlHttpRequest() === false)
  4. return false;
  5.  
  6. $json = $this->_request->getParam("json");
  7. $json = json_decode($json, true);
  8. $this->_response->appendBody($json);


I tu się pojawia problem. Mianowicie chciałbym żeby mi wyświetlało array() a niestety wyświetla mi [Object].
Czy jest jakaś funkcja w jQuery, która przekształca obiekt JSON na string`a ?

Można ewentualnie zrobić tak ale to jest niezbyt ładny sposób:
  1. ...
  2. var json="{";
  3. json += '"zmienna": 2';
  4. json += "}";
  5. ...


Pozdrawiam.
nospor
Coś przekombinowales
data: "json="+json
przeciez tutaj dodajesz obiekt json do tekstu, wiec js obiekt zamienia ci poprostu na tekst Object a nie na obiekt
Jak chcesz przekazac dane postem to poprostu zrób:
data: json
I już. Dane ci pójdą normalnie postem jak każda inna dana.
Fluke
No właśnie nie... :/ jak wysyłałem json to potem wypisywało mi tylko "[Object]"

Ale już sobię z tym poradziłem, tutaj link: http://code.google.com/p/jquery-json/

A teraz mam następny problem bo nie wiem jak zapisać zmienne JS do JSON, tzn:
  1. json = {};
  2. var name = "myVar";
  3.  
  4. json.name = "value";

i za name powinno być myVar.
nospor
Cytat
jak wysyłałem json to potem wypisywało mi tylko "[Object]"

No bo jak robiles tak: data: "json="+json
to nic dziwnego ze miales tekst. Pisałem ci o tym.

A jesli robiles po mojemu to już nie miałeś potem robić w php zadengo decode.

Cytat
i za name powinno być myVar.

json[name] = "value";
Fluke
@nospor
Racja, nie doczytałem tej liniki "data: json"

Ale jeśli chodzi o zmienne to dalej mi zapisuje jako name...

kurdę, jak zawsze mi się spieszy to nie zauważam rezultatów. Za dużą mam tablicę i nie popatrzyłem dokładnie.

Działa tak jak powinno, dzięki @nospor
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.