2017-02-24 104 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]')); 

它不告诉我,我有一个错误,它并没有显示我任何完成。

+0

也许是因为'$请求 - > term'总是空。 'term'来自哪里? – EddyTheDove

+0

请求对象只有一个属性,它是长期的功能 –

+0

第一线,做'DD($请求 - >项)',看看它是否包含你输入的字符串。 – EddyTheDove

回答

0

由于堆栈和EddyTheDove我发现该错误是aucomplete不是一个函数,所以我不得不删除barkets和$功能,所以它会是这样的脚本标签

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