2016-09-22 33 views
0

AJAX投稿要求後、Laravel 5.2のブレードビューでJSONにアクセスするにはどうすればよいですか?それは未定義であるというエラーメッセージが表示されますので、リターンレスポンス() - > json to Laravel View - AJAX

は、ビュー内でアクセスすることはできません私の変数

{{$ trackedAddress}}かのように思えます。しかし、私のコンソールでは、clickイベントの後にJSONオブジェクトが存在することがわかります。

コントローラー:

public function postModalChart(Request $request) 
{ 
    $task_address = $request['taskAddress']; 
    $task_city = $request['taskCity']; 

    $user = Auth::user(); 
    $userId = $user->id; 

    $trackedAddress = DB::table('tasks') 
     ->join('soldhomestest', function ($join) { 
      $join->on('tasks.address', '=', 'soldhomestest.address') 
       ->on('tasks.city','=','soldhomestest.city'); 
     }) 
     ->where([ 
      ['user_id', '=', $userId], 
      ['tasks.address', '=', $task_address], 
      ['tasks.city', '=', $task_city], 
     ]) 
     ->get(); 

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

はJQuery:

$('.trackedAddress').on('click', function(event) { 
    event.preventDefault(); 
    var self = $(this), 
    taskAddress = self.data('address'); 
    taskCity = self.data('city'); 
    var target = self.data('target'); 
    $.ajax({ 
     method: 'POST', 
     url: 'postModalChart', 
     dataType: 'json', 
     data: {taskAddress: taskAddress, taskCity: taskCity, _token: token}, 
    }) 
    .done(function(data) { 
     console.log(data); 
     $('#'+target).val(data); 
    }); 
}); 
+0

AJAX呼び出しを使用して、コンソールで期待されるJSON応答を見ることができますが、このコンテキストではビューがどこから来たのかが分かりますか?申し訳ありませんが、混乱しています! –

+0

私はそれを表示しようとすると、ビューに私のクエリの結果を表示することができたが、$ trackedAddressは定義されていませんでした –

+0

私は間違ったアプローチを使用していました.... –

答えて

0

PHP(およびそのごlaravelブレードテンプレート)ページがロードされた後、ブラウザのページに追加されたカントのアクセス変数なぜならPHPは新しいページをロードしたり、AJAXリクエストを送信したりすることによって次のリクエストを行うまで死んでしまいます。

ページ上でリアルタイムに変更したい場合は、AJAX(PHPのやり取りが必要な場合)またはjavascript/jqueryを使用する必要があります。

+0

これは意味があります。 –