Tìm kiếm tự động trong Laravel sử dụng jQuery Autocomplete

Tram Ho

Chắc hẳn các bạn đâu đó cũng nghe tới search autocomplete nó là cách tự động gợi ý các từ khi chúng ta gõ thực hiện tính năng tìm kiếm giúp thuận tiện cho việc tìm kiếm chính xác hơn cũng như nâng cao được trải nghiệm của người dùng. TÍnh năng này hiện tại đã và đang được rất nhiều trang web áp dụng (chắc hẳn các bạn hay search google đúng k . Chính nó đấy ).
Thực ra có rất nhiều thư viện hỗ trợ cho chúng ta việc tìm kiếm này (vd typeahead, Easyautocomplete, Horsey, …) .Tùy vào nhu cầu dự án mà mình lựa chọn và sử dụng thư viện sao cho phù hợp.
Không lan man nữa , hôm nay mình xin hướng dẫn các bạn sử dụng thư viện jQuery Autocomplete để thực hiện tính năng này.

Bắt đầu thôi nào.

Bước 1:Cài đặt ứng dụng Laravel

Các bạn vào command gõ lệnh dưới đây để tạo project

Bước 2:Tạo bảng, model Cake và dữ liệu mẫu cho nó.

1.Đầu tiên tạo file migrate để tạo ra bảng cakes

Nó sẽ sinh ra file create_cakes_table.php trong đường dẫn “database/migrations” và chúng ta sẽ vào file đó và copy nội dung sau đây:

Sau chạy lệnh sau để tạo bảng cake:

2. Tạo model Cake

Gõ lệnh sau để tạo model:

Nó sẽ sinh ra file Cake.php trong đường dẫn app/Cake.php và vào file đó copy nội dung sau:

3. Tạo dữ liệu mẫu cho bảng cakes.

Lần lượt gõ các lệnh sau:

Nó sẽ sinh ra file CakeSeederTable.php và CakeFactory.php và ta sửa nội dung 2 file đó như sau:

CakeSeederTable.php

CakeFactory.php

Sau đó vào file DatatableSeeder.php sửa nội dung như sau:

Cuối cùng chạy lệnh sau để tạo dữ liệu mẫu:

Bước 3: Cài đặt thư viện jQuery-Autocomplete

Có thể sử dụng 3 cách sau :

Bước 4: Xây dựng route,Controller, View

1.Xây dựng route

Ta vào web.php thêm route sau:

2.Xây dựng controller

Tạo controller CakeController bằng câu lệnh sau:

Sửa nội dung file CakeController thành (ở đây mình tìm kiếm theo gợi ý là name của cakes):

3.Xây dựng file view

Ở đây mình tạo ra file index.blade.php với nội dung như sau:

Note:
Ở trên mình có tích hợp CDN jquery autocomplete:

<script src=”https://cdnjs.cloudflare.com/ajax/libs/jquery.devbridge-autocomplete/1.4.10/jquery.autocomplete.min.js”></script>

Để sử dụng thư viện thì ta sẽ gọi đến autocomplete như sau:

serviceUrl: Đường dẫn gọi ajax và response phải trả về dữ liệu json theo format sau:

transformResult: Sẽ format lại được giá trị trả về khi gọi ajax để lấy dữ liệu ra cũng như format đúng định dạng trả về mà thư viện yêu cầu để hiển thị đúng suggests khi gõ tìm kiếm.
onSelect: Khi click 1 ô gợi ý sẽ thực hiện làm gì.

Đặc biệt chúng ta cũng có thể custom css được cho các ô gợi ý:
-Mặc định thư viện sẽ render ra đoạn html sau:

-Vì vậy chúng ta có thể tùy chỉnh css như bài mình chỉnh như sau:

Còn có rất nhiều lựa chọn khác tùy thuộc vào yêu cầu bạn có thể tham khảo thêm ở:
https://github.com/devbridge/jQuery-Autocomplete

Bước 5: Xem thành quả

Bạn chạy lệnh sau và vào đường link http://localhost:8000/demo-search:

Cùng xem thành quả nào:

Kết luận

Trên là những gì mà mình tìm hiểu được về thư viện jQuery-Autocomplete .
Mong rằng sẽ giúp ích được các bạn trong các dự án cũng như các bài tập trên trường…
Chúc các bạn thành công.!

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo