2011-09-09 10 views
6

jqueryのを介して、Iアヤックス/ POSTこのJSONjsonをsymfony2のPHPオブジェクトに変換するには? Symfony2のアクションへ

{"indices":[1,2,6]}: 

。今、私は本当に配列を気にするだけなので、これで事態がかなり簡単になると[1,2,6]も投稿できます。

これをPHPオブジェクトに変換するにはどうすればよいですか?


どういうわけか、これは動作しません:500で.../PageController.phpライン64(非オブジェクトのプロパティを取得しようとすると:

/** 
* @Route("/admin/page/applySortIndex", name="page_applysortindex") 
* @Method("post") 
* @Template() 
*/ 
public function applySortIndexAction() 
{ 
    $request = $this->getRequest(); 
    $j = json_decode($request->request->get('json')); 
    $indices = $j->indices; 
    return array('data'=> $indices); 
} 

通知します

$ j->インデックスにアクセスします。ここで、$ jはnullのようです。


ポスター:

$.ajax({ 
     type: 'POST', 
     url: "{{ path('page_applysortindex')}}", 
     data: $.toJSON({indices: newOrder}), 
     success: ... 
+0

私はあなたが私が積極的に – Raffael

+0

の名前として「JSON」を使用していなかったと思いますだから私はデータを書く必要があります: "data =" + $ .toJSON({indices:newOrder})そして全てがうまくいきます。おそらくこれのためのより良い解決策があります。 – Jan

+0

ああ...私は上記のjsを投稿します、全く任意の名前を使用していない、このPOSTパラメータ – Jan

答えて

5

体の使用を介して送信されたデータを取得するには:

$request = $this->getRequest(); 
$request->getContent(); 

は出力を検査し、その後に作用します。しかし、これはjsonを含むでしょう。

(うん、これはあなたのJSONにつながる、それをテストした。)


コントローラ内から名前のJSONとPOSTパラメータを取得:

$request = $this->getRequest(); 
$request->request->get('json'); 

Request-object


$j = json_decode('{"indices":[1,2,6]}'); 

var_dump($j); 

lea ds:

object(stdClass)#1 (1) { 
    ["indices"]=> 
    array(3) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(2) 
    [2]=> 
    int(6) 
    } 
} 
+0

ありがとう!あなたは正しい男に尋ねることができれば物事はとても簡単です:) – Jan

+1

Arrgh、しかし、私はどのようにリクエストからjsonに行くのですか? – Jan

+0

私はまだジェソンに着くように見えません。問題の実際のメソッドを表示するために私の質問を更新しました... – Jan

関連する問題