Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ajax i JSON, Przesyłanie tablicy JSON przez Ajax do skryptu PHP
Fluke
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





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




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.
Go to the top of the page
+Quote Post
Fluke
post
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


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.
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
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";
Go to the top of the page
+Quote Post
Fluke
post
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


@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

Ten post edytował Fluke 1.03.2012, 11:17:31
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 9.09.2025 - 12:33