自动完成Ajax laravel

时间:2017-02-24 16:42:21

标签: laravel jquery-ui-autocomplete

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

查看

<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'));

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

2 个答案:

答案 0 :(得分:0)

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

https://github.com/ARCANEDEV/LogViewer

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

答案 1 :(得分:0)

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