我使用 laravel 5 和 Prime UI 中的自动完成功能:
$(function() {
$('#remote').puiautocomplete({
effect: 'fade',
effectSpeed: 'fast',
completeSource:function(request, response) {
$.ajax({
type: "GET",
url: "{{ URL::to('search/autocomplete') }}",
data: {query: request.query},
dataType: "json",
context: this,
success: function(data) {
response.call(this, data);
}
});
}
});
输入字段:
<input id="remote" name="remote" type="text"/>
通过给定的 URL 调用以下函数:
public function autocomplete(Request $request){
$term = $request->input('remote');
$results = array();
$queries = DB::table('persons')
->where('name', 'LIKE', '%' . $term . '%')
->take(5)->get();
foreach ($queries as $person) {
$results[] = [ 'value' => $person->id, 'label' => $person->name];
}
return response()->json($results);
}
问题是,例如,当我的数据库中有 3 个名为 Tom、Peter、Frank 的人时,然后通过在输入文本字段中键入“FR”,所有 3 个人都会显示以供选择。通过主要的 ui 组件,字母“FR”被高亮显示为找到。但在这种情况下,只有 Frank 应该是可见的以供选择。
有什么想法可能是错的吗?谢谢