2017-02-24 5 views
0

こんにちは私のデシベル で私は既に持っているいくつかの都市への自動補完を行う必要があるので、私のコードは次のようである:自動完成アヤックスlaravel

ビュー

<input type="text" name="ville" id="ville" class="small" placeholder="Entrer la ville souhaité"> 
     <script type="text/javascript"> 
     $(function() { 
     $("#ville").autocomplete({ 
      source:'{!!URL::route('autocomplete')!!}', 
      minlength:1, 
      autoFocus:true, 
      select:function(e,ui) 
      { 
       $('#ville').val(ui.item.value); 
      } 
     }); 
     });  
     </script> 

コントローラ

class VilleController extends Controller 
{ 
    public function autocomplete(Request $request) 
    { 
    $term = $request->term; 

    $queries = DB::table('ville') 
    ->where('libelle_ville', 'like', '%'.$term.'%') 
    ->take(6)->get(); 

    foreach ($queries as $query) 
    { 
     $results[] = ['id' => $query->id, 'value' => $query->libelle_ville]; //you can take custom values as you want 
    } 
    return response()->json($results); 
    } 
} 

ルート

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

私にはエラーがあり、いずれにも完了が表示されません。 laravelと

+0

おそらく '$ request-> term 'が常にnullであるためです。 「用語」はどこから来ますか? – EddyTheDove

+0

リクエストオブジェクトは1つのプロパティしか持たず、用語は –

+0

です。関数の最初の行に 'dd($ request-> term)'を実行し、入力した文字列が含まれているかどうかを確認します。 – EddyTheDove

答えて

0

おかげで起こったいただきました!参照このパッケージをダウンロードすることをお勧めいたしますと、 EddyTheDove私は、aucompleteは関数ではないので、barketsと$ functionをスクリプトのタグでこれと同じようにする必要があるので、エラーであることが分かりました。

<script type="text/javascript"> 
     $("#ville").autocomplete({ 
      source:'{!!URL::route('autocomplete')!!}', 
      minlength:1, 
      autoFocus:true, 
      select:function(e,ui) 
      { 
       $('#ville').val(ui.item.value); 
      } 
     });  
</script>