2016-08-13 14 views
1

ajaxリクエストが正常に機能しています。私の問題は、自分が望む形式でデータを取得するためにコントローラーを正しく使用する方法を本当に知りません。Symfony 3のajaxリクエストでポストパラメータを取得する方法

私はこのような方法を使用したいと思います。ここでは

$request->request->get('pseudo'); // will return "bob" 

は私のコントローラのコードである:ここで

public function mainPlayAction(Request $request) 
{ 

    if ($request->isXmlHttpRequest()) 
    { 
     $allContent = $request->getContent(); // will return a string with this format "selectedBalls=34&selectedStars=11" 

     $selectedBalls = $request->request->get('selectedBalls'); // will return null 

     $selectedstars= $request->request->get('selectedStars'); // will return null 

     $all = $request->request->all(); // will return Array[0] 

     $response = [ 
      'allContent' => $allContent, 
      'selectedballs' => $selectedBalls, 
      'selectedStars' => $selectedStars, 
      'all' => $all,     
      'success' => true, 
      "status" => 100 
     ]; 

     return $this->json($response); 
    } 
} 

がある私のAjaxコード

$.ajax({ 
    url: url, 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    type: "POST", 
    data: { 
     'selectedballs': selectedBalls, 
     'selectedStars': selectedStars, 
     'countGames': countGames 
    }, 
    success: function (response) { 
     window.console.log(response); 
    }, 
}) 
+0

http://stackoverflow.com/questions/9522029/posting-jsonを使用して、私の件のデータを取得することができます-objects-to-symfony-2 – Cerad

答えて

1

あなたは、単にする必要が->get()Requestオブジェクトに呼び出すと、AJAX Requと一緒にデータが取得されます。 EST(東部基準時。このよう

$selectedballs=$request->get('selectedballs'); 
$selectedStars=$request->get('selectedStars'); 
$countGames=$request->get('countGames'); 
+0

あなたのソリューションを実装しようとしていますが、動作していないようです。私はあなたの答えが良いものだと確信していますが、私は自分のコードで何が間違っているかを探しています – zm455

+2

実際には、これはポストされたjsonデータのためにはまったく動作しません。 – Cerad

+0

@セラード私は何をしなければならないか教えてくれますか? – zm455

0

私は良い答えを見つけました。

私は私のAJAXリクエスト

contentType: "application/json; charset=utf-8" 

からのコード行を削除したそして今、私は

$request->get('selectedBalls'); 
+1

チャンスが得られたら、jsonの投稿とフォームデータの投稿の違いについて少しお読みください。あなたの解決策は持続可能ではありません。 – Cerad

+0

私は私の解決策に間違いを覚えました。私はそれを編集しました。今私は$ request-> get( 'selectedBalls')を使用します。あなたによれば、それは良い解決策ではありませんか?注:フォームを使用せずにajaxデータを送信します。 – zm455

+0

私があなたに与えたリンクの答えを読んでください。特に、$コンテンツの使用方法を見てください。 – Cerad

関連する問題