2016-05-05 14 views
0

私はLaravelからAJAX投稿要求への応答を送信しようとしています。AJAX Laravelからの応答として配列を送信

public function infoRoute(Request $request) 
    { 
     // Get info 
     $ship_id = $request->ship_id; 
     $startDate = $request->datepicker_start; 
     $endDate = $request->datepicker_end; 

     // Get all the locations between those dates 
     $routeArray = $this->measurementRepository->getCoordinates($ship_id, $startDate, $endDate); 

     $ship = $this->shipRepository->getShipForId($ship_id); 
     $info = $this->createRouteArrayForShip($ship, $routeArray); 

     if($request->ajax()) { 
      return response()->json(json_encode($info)); 
     } 
    } 

    protected function createRouteArrayForShip($ship, $routeArray) 
    { 
     $info['type'] = "showRoute"; 

     $index = 0; 

     foreach($routeArray as $coordinates) 
     { 
      $info['info']['route']['loc'. $index] = $coordinates; 
      $index++; 
     } 

     $info['info']['shipInfo'] = $ship; 

     //dd($info); 
     return $info; 
    } 

情報を受け取ってjQueryで処理すると、ルートから除外されたすべてが空です。

response()->json()方法は、シーンの背後にあるjson_encode() PHP関数を使ってJSONに指定された配列を変換し、

+0

のようになりますか? – Dale

+0

多次元配列があります。 –

+0

JSONとして返すようにしてください – kejsu

答えて

2

、ありがとうございました。 response()->json()コールの中からjson_encode()を削除する必要があります。

基本的にそれはあなたがあなたのブラウザの開発ツールを使用している場合...どのようなデータは、あなたが反応して戻って来るのを見るんこの

return response()->json($info); 
+0

ありがとうございます!私はそれをしましたが、それはまだ動作していません。 '$ info'にはルートからの座標が含まれていないという事実と関係していると思います。それは空に送られます。応答を返す前に 'dd($ info)'を実行すると、ルートは空です。しかし、関数createRouteArrayForShipを呼び出すと、配列にレコードが実際に保存されます –

関連する問題