2017-04-02 30 views
0

我想用选择二来筛选我的“供应商”这样的:Laravel选择二框在我Laravel 5.4的应用程序没有过滤

https://paste.laravel.io/RowKK

的选择二框显示正确的内容,但是当我开始输入它不会过滤正确的项目的提供程序的名称。

在示例页面上使用相同的功能时,此功能正在工作。

任何想法我做错了什么?

问候

kay899

+0

你应该通过你的任期过滤。阅读更多关于select2 https://select2.github.io/options.html#results – Roljhon

+0

你究竟是什么意思? – kay899

回答

0

它仍然是你的API后端,将做过滤,所有你需要做的就是通过在你的Ajax data属性通过查询词。示例params.term已传递给q属性,并从API后端拖出。

例GitHub的库拉:

function formatRepo (repo) { 
 
    if (repo.loading) return repo.text; 
 
    return repo.full_name 
 
} 
 

 
function formatRepoSelection (repo) { 
 
    return repo.full_name || repo.text; 
 
} 
 

 
$(".js-data-example-ajax").select2({ 
 
    placeholder: 'Select an item', 
 
    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) { 
 
      // notice we return the value of more so Select2 knows if more results can be loaded 
 
      //console.log(data.items) 
 
      params.page = params.page || 1; 
 
      return { 
 
      results: data.items, 
 
      pagination: { 
 
       more: (params.page * 30) < data.total_count 
 
      } 
 
      }; 
 
     }, 
 
    cache: true 
 
    }, 
 
    escapeMarkup: function (markup) { return markup; }, 
 
    minimumInputLength: 1, 
 
    templateResult: formatRepo, 
 
    templateSelection: formatRepoSelection 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet"/> 
 

 
<select class="js-data-example-ajax" style="width:500px;"> 
 
    <option selected="selected"></option> 
 
</select>