自动完成 Ajax laravel

Auto Completion Ajax 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'=>'VilleController@autocomplete'));

它没有告诉我有错误,也没有显示任何完成。

用laravel调试json请求有点困难,我建议你下载这个包

https://github.com/ARCANEDEV/LogViewer

或手动打开 laravel 登录 storage/logs/laravel.log 看看发生了什么

感谢 Stack 和 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>