This is views code
{!! Form::open(['method'=>'GET','url'=>'blog','class'=>'navbar-form navbar-left','role'=>'search']) !!}
<div class="input-group custom-search-form">
<input type="text" name="search" class="form-control">
<span class="input-group-btn">
<button type="submit" class="btn btn-default-sm">
<i class="fa fa-search"></i>
</button>
</span>
</div>
{!! Form::close() !!}
this is controllers code
public function index(){
// // we need to show all data from "blog" table
// $blogs = Blog::all();
// // show data to our view
// return view('blog.index',['blogs' => $blogs]);
$search = \Request::get('search');
$blogs = Blog::where('title','like','%'.$search.'%')->orderBy('id')->paginate(6);
return view('blog.index',['blogs' => $blogs]);
}
How can I upgrade this code to ajax?
You can use the searchable trait provided from laravel, it will do all the job for you out of the box !
All you need to do is adding this line to the model
use Searchable;
in the controller, you do something like this
$orders = Blog::search($search)->orderBy('id')->paginate(6);
and for Ajax request.. you can do it using jQuery :
$.get( "/?search="+ $( ".query" ).text(), function( data ) {
$( ".result" ).html( data );
alert( "Load was performed." );
});
You need to assign id for query textfield in HTML so you can retrieve it using jQuery