自动完成Ajax-laravel

自动完成Ajax-laravel,laravel,jquery-ui-autocomplete,Laravel,Jquery Ui Autocomplete,您好,我需要做自动完成一些城市,我已经在我的数据库 所以我的代码是这样的: 看法 路线 它没有告诉我有错误,也没有显示任何完成情况。使用laravel调试json请求有点困难,我建议您下载此软件包 或者在storage/logs/laravel.log中手动打开laravel日志,看看发生了什么多亏了Stack和Eddystedove,我发现错误在于aucomplete不是一个函数,所以我必须删除barkets和$函数,所以在脚本标记中类似于此 <script type="text/jav

您好,我需要做自动完成一些城市,我已经在我的数据库 所以我的代码是这样的:

看法

路线


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

使用laravel调试json请求有点困难,我建议您下载此软件包


或者在storage/logs/laravel.log中手动打开laravel日志,看看发生了什么

多亏了Stack和Eddystedove,我发现错误在于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>

可能是因为$request->term总是空的。“term”从何而来?请求对象只有一个属性,它是函数的termFirst行,执行dd$request->term,查看它是否包含您输入的字符串。我应该在哪里看到它?在日志中?确定返回$request->term并检查您的控制台网络部件以查看它是否返回任何响应。在铬合金表面点击droit->inspect,查看网络。
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'));
<script type="text/javascript">
        $( "#ville" ).autocomplete({
            source:'{!!URL::route('autocomplete')!!}',
            minlength:1,
            autoFocus:true,
            select:function(e,ui)
            {
              $('#ville').val(ui.item.value);
            }
        });    
</script>