duanguilin2007 2016-12-01 07:36
浏览 44
已采纳

在laravel 5.3中创建ajax搜索

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?

  • 写回答

1条回答 默认 最新

  • doudou348131346 2016-12-01 09:40
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?