ahmadajah03 Mon Mar 2020 1 year ago

Membuat Pencarian Autocomplete Ajax di Laravel 7

Hari ini, saya akan memberi tahu Anda contoh laravel 7 pencarian autocomplete dari database. mari kita bahas tentang ajax autocomplete textbox di laravel 7 menggunakan jquery. Anda dapat memahami konsep bootstrap typeahead autocomplete ajax laravel 7. Posting ini akan memberi Anda contoh sederhana laravel 7 typeahead ajax autocomplete contoh. Baiklah, mari selami langkah-langkahnya.

Bootstrap Typeahead JS menyediakan cara antarmuka pengguna sehingga, kita dapat dengan mudah menulis kode jquery ajax dan menjadikannya pencarian autocomplete dinamis di aplikasi laravel 7. kita dapat dengan mudah menggunakan Typeahead JS dengan bootstrap.

Jquery autocomplete adalah keharusan jika Anda berurusan dengan data besar, seperti Anda memiliki item atau tabel produk dan ribuan catatan sehingga tidak mungkin untuk memberikan kotak drop-down, tetapi lebih baik jika kita menggunakan autocomplete daripada kotak pilih.

Ikuti langkah-langkah di bawah ini untuk membuat pencarian autocomplete sederhana dengan aplikasi laravel 7.

Langkah 1: Unduh Laravel 7

pertama-tama kita perlu mendapatkan aplikasi versi Laravel 7 baru menggunakan perintah di bawah ini, Jadi buka terminal ATAU command prompt Anda dan jalankan perintah di bawah ini:

composer create-project --prefer-dist laravel/laravel blog

Langkah 2: Buat Migrasi dan Model

Pada langkah ini kita harus membuat migrasi untuk tabel item menggunakan perintah artara Laravel 7 php, jadi pertama jalankan perintah di bawah ini:

php artisan make:migration create_items_table

Setelah perintah ini, Anda akan menemukan satu file di jalur berikut "database/migrations" dan Anda harus meletakkan kode di bawah ini di file migrasi Anda untuk membuat tabel item.

<?php
  
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
  
class CreateItemsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('items', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->timestamps();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('items');
    }
}

Kemudian setelah itu, jalankan migrasi:

php artisan migrate

Setelah membuat tabel "item" Anda harus membuat model Item untuk item, jadi pertama-tama buat file di jalur ini "app/Item.php" dan letakkan konten di bawah ini di file item.php:

app/Item.php

<?php
  
namespace App;
   
use Illuminate\Database\Eloquent\Model;
  
class Item extends Model
{
       
}|

Langkah 3: Buat Route

Pada langkah ini kita perlu membuat rute untuk tampilan tampilan dan metode ajax. jadi buka file "route/web.php" Anda dan tambahkan rute berikut.

route/web.php

Route::get('search', 'SearchController@index')->name('search');
Route::get('autocomplete', 'SearchController@autocomplete')->name('autocomplete');

Langkah 4: Buat Controller

Pada langkah ini, kita harus membuat controller baru sebagai SearchController dan kita juga perlu menambahkan dua metode indeks () dan autocomplete () pada controller itu seperti yang Anda lihat di bawah ini:

app/Http/Controllers/SearchController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Item;
  
class SearchController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('search');
    }
  
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function autocomplete(Request $request)
    {
        $data = Item::select("name")
                ->where("name","LIKE","%{$request->query}%")
                ->get();
   
        return response()->json($data);
    }
}

Langkah 5: Buat File View

Pada langkah Terakhir, mari kita buat search.blade.php (resources/views/search.blade.php) untuk tata letak dan daftar semua kode item di sini dan masukkan kode berikut:

resources/views/search.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 7 Autocomplete Search using Bootstrap Typeahead JS - ItSolutionStuff.com</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.1/bootstrap3-typeahead.min.js"></script>
</head>
<body>
   
<div class="container">
  <h1>Laravel 7 Autocomplete Search using Bootstrap Typeahead JS - Medikre.com</h1>  
    <input class="typeahead form-control" type="text">
</div>
   
<script type="text/javascript">
    var path = "{{ route('autocomplete') }}";
    $('input.typeahead').typeahead({
        source:  function (query, process) {
        return $.get(path, { query: query }, function (data) {
                return process(data);
            });
        }
    });
</script>
   
</body>
</html>

Pastikan Anda memiliki beberapa data dummy di tabel item Anda sebelum menjalankan contoh ini. Sekarang kita siap untuk menjalankan contoh kita jadi jalankan perintah di bawah ini untuk menjalankan cepat:

php artisan serve

Sekarang Anda dapat membuka URL di bawah ini di browser Anda:

http://localhost:8000/search

autocomplete ajax laravel