Laravel AJAX Live Autocomplete Search from Database

Today, We want to share with you Laravel AJAX Live Autocomplete Search from Database Example.In this post we will show you jQuery Autocomplete Tutorial with Laravel 5.7 and MySQL, hear for Laravel 5.7 Ajax Autocomplete Search from Database Example we will give you demo and example for implement.In this post, we will learn about Laravel 5.7 Autocomplete Search From Database Using Typeahead Tutorial Example with an example.

Laravel AJAX Live Autocomplete Search from Database Example

There are the Following The simple About Laravel AJAX Live Autocomplete Search from Database Example Full Information With Example and source code.

As I will cover this Post with live Working example to develop Autocomplete Textbox using Laravel 5.7, PHP and MySQL, so the some major files and Directory structures for this example is following below.

  • Setup Laravel 5.7 Project
  • Settings .env files SQL Database
  • build Laravel 5.7 Model and Migration Database
  • make Laravel 5.7 a HTML View File
  • make Laravel 5.7 one controller
  • Laravel 5.7 Route
  • Store data Laravel 5.7 to the database
  • make an index page Laravel 5.7 Search the data
  • Include jQuery in the view Index File

Laravel 5.7 Autocomplete Search From Database Using Typeahead Tutorial Example

#1: Setup Laravel 5.7 Application

Install Laravel 5.7 Project step by step

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

Step #2: Settings SQL Database

.env files on root

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=liveautocompletebox
DB_USERNAME=root
DB_PASSWORD=

Step #3: build Laravel 5.7 Model and Migration Database

Laravel 5.7 Model and Migration files

php artisan make:model Member -m 

make the member.php file as well as create a create_members_table.php

//Ajax Autocomplete Textbox in Laravel 5.7 using jQuery
public function up()
    {
        Schema::create('members', function (Blueprint $table) {
            $table->increments('id');
            $table->string('membername');
            $table->timestamps();
        });
    }

Database >> member table.

php artisan migrate

Step #4: Make a Laravel 5.7 View File

resources/views/createmember.blade.php

<!-- createmember.blade.php for Ajax Autocomplete Textbox in Laravel 5.7 using jQuery -->

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Laravel 5.7 Autocomplete Search From Database Tutorial With Example</title>
    <link rel="stylesheet" href="{{asset('css/app.css')}}">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
  </head>
  <body>
    <div class="container">
      <h2>Laravel 5.7 AJAX Live Autocomplete Search from Database Example</h2><br/>
      <form method="post" action="{{url('store')}}">
        @csrf
        <div class="row">
          <div class="col-md-4"></div>
          <div class="form-group col-md-4">
            <label for="Name">Member Name:</label>
            <input type="text" class="form-control" name="membername">
          </div>
        </div>
        <div class="pakainfo row">
          <div class="col-md-4"></div>
          <div class="form-group col-md-4">
            <button type="submit" class="btn btn-success">Add Member</button>
          </div>
        </div>
      </form>
   </div>
  </body>
</html>

Step #5: Make Laravel 5.7 controller

create Laravel Controller as well as Model

php artisan make:controller MemberController

MemberController.php

//MemberController.php
//Ajax Autocomplete Textbox in Laravel 5.7 using jQuery

public function create()
    {
        return view('createmember');
    }

Step #6: Laravel Route

web.php

//web.php

Route::get('createmember','[email protected]');
Route::post('store','[email protected]');
Route::get('createmember/index','[email protected]');
Route::get('search','[email protected]');

Run Laravel 5.7 Project -> Ajax Autocomplete Textbox in Laravel 5.7 using jQuery

php artisan serve

Step #7: Store data Laravel 5.7 to the database

MemberController.php

//MemberController.php

public function store(Request $request)
    {
        $member = new \App\Member();
        $member->membername=$request->get('membername');
        $member->save();
        return redirect('createmember/index')->with('success', 'Member has been added Successfully');
    }

Step #8: Make an index page for Laravel 5.7 Search the data

resources/views/indexmember.blade.php

<!-- indexmember.blade.php -->

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Ajax Autocomplete Textbox in Laravel 5.7 using jQuery</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script></head>
  <body>
    <div class="container">
      <h2>Laravel 5.7 AJAX Live Autocomplete Search from Database Example</h2><br/>
      @if (\Session::has('success'))
      <div class="alert alert-success">
        <p>{{ \Session::get('success') }}</p>
      </div><br />
     @endif
        <div class="row">
          <div class="col-md-4"></div>
          <div class="form-group col-md-4">
            <label for="Search">Search:</label>
            <input type="text" class="form-control" id="search" name="search">
          </div>
        </div>
    </div>
  </body>
</html>

index Methods in MemberController.php

public function index()
    {
        return view('indexmember');
    }

MemberController.php

//MemberController.php

public function result(Request  $request)
    {
        $result=\App\Member::select('membername')->where('membername', 'LIKE', "%{$request->input('query')}%")->get();
        return response()->json($result);
    }

MemberController.php

//MemberController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MemberController extends Controller
{
    public function create()
    {
        return view('createmember');
    }
    public function store(Request $request)
    {
        $member = new \App\Member();
        $member->membername=$request->get('membername');
        $member->save();
        return redirect('createmember/index')->with('success', 'Member has been added Successfully');
    }
    public function index()
    {
        return view('indexmember');
    }
    public function result(Request  $request)
    {

        $result=\App\Member::select('membername')->where('membername', 'LIKE', "%{$request->input('query')}%")->get();
        return response()->json($result);
    }
}

Step #9: Include jQuery in the Laravel View Index File

indexmember.blade.php

<!-- indexmember.blade.php -->

<script type="text/javascript">


    var path = "{{ url('search') }}";

    $('#search').typeahead({
         minLength: 2,
        source:  function (query, process) {
        return $.get(path, { query: query }, function (data) {
            var memberlist = [];
                data.forEach(function(value){
                    memberlist.push(value.membername);
                });
                return process(memberlist);
            });
        }
    });
    </script>

indexmember.blade.php

<!-- indexmember.blade.php -->

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Laravel 5.7 - Ajax Autocomplete Textbox in Laravel 5.7 using jQuery</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script></head>
  <body>
    <div class="container">
      <h2>Laravel 5.7 AJAX Live Autocomplete Search from Database Example</h2><br/>
      @if (\Session::has('success'))
      <div class="alert alert-success">
        <p>{{ \Session::get('success') }}</p>
      </div><br />
     @endif
        <div class="row">
          <div class="col-md-4"></div>
          <div class="form-group col-md-4">
            <label for="Search">Search:</label>
            <input type="text" class="form-control" id="search" name="search">
          </div>
        </div>
    </div>
    <script type="text/javascript">


    var path = "{{ url('search') }}";

    $('#search').typeahead({
         minLength: 2,
        source:  function (query, process) {
        return $.get(path, { query: query }, function (data) {
            var memberlist = [];
                data.forEach(function(value){
                    memberlist.push(value.membername);
                });
                return process(memberlist);
            });
        }
    });
    </script>
  </body>
</html>

Angular 6 CRUD Operations Application Tutorials

Read :

Also Read :  Automatically Refresh/Reload Page using VueJS Example

Summary

You can also read about AngularJS, ASP.NET, VueJs, PHP.

I hope you get an idea about Laravel 5.7 AJAX Live Autocomplete Search from Database Example.
I would like to have feedback on my Pakainfo.com blog.
Your valuable feedback, question, or comments about this article are always welcome.
If you enjoyed and liked this post, don’t forget to share.

Leave a Reply

avatar
  Subscribe  
Notify of