2016-12-14 17 views
0

.ajax()でデータベースからデータを返したいが、ページのHTML全体でエラーが発生する。なぜそれをやっているのですか?LaravelとAJAXは何も返さない

マイ.ajax()コール:

$.ajax({ 
    url: '{{ URL('reports/groupsUsersGet') }}', 
    dataType: "json", 
    data: { 
     group_id : $('#group').val(), 
    }, 
    success: function(data) { 
     alert(data); 
    }, 
    error: function (data) { 
     console.log('Error:', data); 
    } 
}); 

経路

Route::get('reports/groupsUsersGet', 
    array(
     'as' =>'groupsUsersGet', 
     'uses' => '[email protected]' 
    ) 
); 

ビュー(フォーム)

{{ Form::select('grup',$group,null,['class'=>'form-control','id'=>'group']) }} 

コントローラ

$term = Input::get('group_id'); 
$results = array(); 
DB::table('users')->where('group', 'LIKE', '%'.$term.'%')->get(); 

foreach ($queries as $query) { 
    $results[] = [ 
     'id' => $query->id, 
     'value' => $query->nick 
    ]; 
} 

return Response::json($results); 
+1

エラーは何ですか?あなたは何を期待していますか? – LorenzoBerti

+0

'$ query'はどこから来たのですか?それを指定してください。 –

+0

tryとcatchを使用して、正確なエラーが発生したことを通知します。 –

答えて

0

csrf_token()もデータとして送信してください。

$.ajax({ 
     url: '{{ URL('reports/groupsUsersGet') }}', 
     dataType: "json", 
     data: { 
     _token: <?php echo csrf_token();?>, 
      group_id : $('#group').val(), 
     }, 
     success: function(data) { 
      alert(data); 
     }, 
     error: function (data) { 
      console.log('Error:', data); 
     } 
     }); 
+0

groupsUsersGet:1061 Uncaught ReferenceError:XREXnSgsYpN3kJwjXGPguiJYZf6XIYxQa7YsYgDzが定義されていません(...)。トークン部分がスローされていない状態でスローされました。状態:200と状態ok(これが渡されたことを意味します)。 – OunknownO

+0

ya XREXnSgsYpN3kJwjXGPguiJYZf6XIYxQa7YsYgDzこれは、送信するトークンの値です。ちょうどグループidの値をとります。 –

+0

詳細はこちらhttp://dev.tutorialspot.com/laravel/laravel_ajax.htm –

0

@HikmatSijapatiが指定したように、リクエストにCSRFトークンを送信していないようです。あなたは、例えば、HTMLのmetaタグにトークンを格納することができ

:AJAX要求では、このようCSRFトークンを渡すことができ

<meta name="csrf-token" content="{{ csrf_token() }}"> 

その後、あなたはメタタグを作成したら、あなたが指示することができますjQueryのようなライブラリはすべてのリクエストヘッダにトークンを自動的に追加します。これにより、AJAXベースのアプリケーションにシンプルで便利なCSRF保護が提供されます。

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

あなたのメソッド内$queries変数を定義することはできませんあなたのコントローラで

0

はこれを試してみてください。

ajax call

$.ajax({ 
    url: "{{ URL('reports/groupsUsersGet') }}", 
    method: 'GET', 
    dataType: "json",   
    data: { 
     group_id : $('#group').val(), 
    }, 
    success: function(data) { 
     alert(data); 
    }, 
    error: function (data) { 
     console.log('Error:', data); 
    } 
}); 

controller

$term = Input::get('group_id'); 
$results = array(); 
$queries = DB::table('users')->where('group', 'LIKE', '%'.$term.'%')->get(); 

foreach ($queries as $query) { 
    $results[] = [ 
     'id' => $query->id, 
     'value' => $query->nick 
    ]; 
} 

return Response::json(['results' => $results], 200); 
0

あなたの助けのために皆に感謝が、エラーは私のコントローラの上で使用する応答を含めないでいました。私がそれをしたとき、それは働いた。

関連する問題