如何在Laravel 5.2中创建加载远程数据搜索


how to create Loading remote data search in Laravel 5.2?

这个网站是Book Hotel,经过用户搜索可以看到城市和酒店。

我想在laravel 5.2中使用Loading remote data select2 .

Github示例:https://select2.github.io/examples.html#data-ajax

模型City:

protected $fillable = [
    'name', 'state', 'country', 'status'
];

模型Hotel:

protected $fillable =[
    'name', 'address', 'phone', 'status', ...
];
HTML:

<select class="js-data-example-ajax">
   <option value="3620194" selected="selected">select2/select2</option>
</select>

脚本:

$(".js-data-example-ajax").select2({
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
delay: 250,
data: function (params) {
  return {
    q: params.term, // search term
    page: params.page
  };
},
processResults: function (data, params) {
  // parse the results into the format expected by Select2
  // since we are using custom formatting functions we do not need to
  // alter the remote JSON data, except to indicate that infinite
  // scrolling can be used
  params.page = params.page || 1;
  return {
    results: data.items,
    pagination: {
      more: (params.page * 30) < data.total_count
    }
  };
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 1,
templateResult: formatRepo, // omitted for brevity, see the source of this page
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
});

ajax发送数据后如何在Laravel controller中写入

HTML:

<select id="hotel" name="hotel">
     <option value="hotel1">Hotel1</option>
     <option value="hotel2">Hotel2</option>
</select>
Jquery和Ajax:
$(document).on('click','#hotel',function(e)
{
    e.preventDefault();
    var name=$(this).val('hotel');
    $.ajax({
        type:"POST",
        url: "{{url('/controller/search')}}",
        data: {
        "_token": "{{ csrf_token() }}"
        },
        success: function (data) {
            var res = $.parseJSON(data);
            if(res == true)
            {   
                  alert('ok');
            }
        }
    });
});

Laravel控制器:

public function search(Request $request)
{
   $hotel=Hotel::where(['name',$request->name])->first();
   return Response::json(array('status'=>TRUE,'hotel'=>$hotel)); 
}