html Laravel自动完成搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html Laravel自动完成搜索相关的知识,希望对你有一定的参考价值。



http://oneordinaryblog.com/php-laravel/laravel-search-autocomplete-typeheadjs

HTML+BOOTSTRAP
<form action="{{ route('video.search') }}" method="get" name="main_search_form" class="navbar-form">

  <div class="input-group">
 
      <input autocomplete="off" type="text" placeholder="Search videos" class="form-control" name="video_search" id="video_search">
      <span class="input-group-btn">
      <button type="submit"  id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
                  </button>
      </span>
  </div>
  
</form>



===========================================================================
WEB.ROUTES
Route::get('/main-search-autocomplete', function(){
    return json_encode(DB::table('videos')->get()->all() );
});

// USER VIDEO SEARCH
Route::get('admin/videos/search', 'VideoController@search')->name('video.search') ;


===========================================================================
CONTROLLER:
public function search()
{
    $value = Input::get('video_search');
    // dd( $value ) ; 
    $videos = Video::where('youtube_name', 'LIKE', '%' . $value . '%')->limit(25)->get();
    return view('admin.videos.search')->with('value', $value)
                                      ->with('videos', $videos);
}


===========================================================================
JS:
$(document).ready(function() {
    $('#video_search').on('keyup', function(e){
        if(e.which == 13){
            $('#main_search_form').submit();
        }
    });
    $.get("/main-search-autocomplete", function(data){
        $("#video_search").typeahead({
            "items": "all", // Number of Items
            "source": data,
            "autoSelect": false,
            displayText: function(item){
                console.log('returning item: ' + item.youtube_name ) ;
                return item.youtube_name;
            },

            updater: function(item) {
              // %20 will also work for names with spaces
              // http://laratubedemo.test/admin/videos/search?video_search=Code+Geass+Op1
                window.location.href = '{{ route('video.search') }}?video_search=' + item.youtube_name.split(' ').join('+') ;
            }

        });
    },'json');
});


以上是关于html Laravel自动完成搜索的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 手动自动完成搜索,如何将信息传递给视图中的 div

输入字段自动完成搜索选择名称并将id存储在输入框laravel

使用 Laravel 和 Vuejs 使用条形码扫描仪自动完成搜索

在 Laravel 5.5 中使用 Typeahead.js 使用两个表格列进行自动完成搜索

使用数据库在laravel中自动完成文本字段

Laravel 在相关表中多次搜索