用户输入3个数据后如何显示select2
how to display select2 after user input 3 data
我这里有select2显示用户邮箱数据,但是数据可以上万,导致我的select2很慢,有没有办法让用户输入3个字母后才显示?
这是我的脚本 select2
$('#add_form').find("#list_user").select2({
width: "100%",
placeholder: "Choose User by Email...",
ajax: {
url: "{{ route('getuser') }}",
dataType: "json",
delay: 250,
processResults: function(data) {
return {
results: $.map(data, function(obj) {
return {
id: obj.email,
text: obj.email
};
})
};
},
}
});
这是我的控制器
public function getUser(Request $request)
{
$search = $request->input('term', '');
$user = DB::table('users.users')->where('email','LIKE','%'.$search.'%')
->get();
return response()->json($user);
}
您的问题的唯一解决方案是只获取一些记录并显示它们。然后从select需要调用controller重新搜索数据并显示。
为此,您可以将查询更改为
user = DB::table('users.users')->where('email','LIKE','%'.$search.'%')->take(10)->get()
对于可搜索的 select 你可以参考 this link and this JSFiddle link
我这里有select2显示用户邮箱数据,但是数据可以上万,导致我的select2很慢,有没有办法让用户输入3个字母后才显示?
这是我的脚本 select2
$('#add_form').find("#list_user").select2({
width: "100%",
placeholder: "Choose User by Email...",
ajax: {
url: "{{ route('getuser') }}",
dataType: "json",
delay: 250,
processResults: function(data) {
return {
results: $.map(data, function(obj) {
return {
id: obj.email,
text: obj.email
};
})
};
},
}
});
这是我的控制器
public function getUser(Request $request)
{
$search = $request->input('term', '');
$user = DB::table('users.users')->where('email','LIKE','%'.$search.'%')
->get();
return response()->json($user);
}
您的问题的唯一解决方案是只获取一些记录并显示它们。然后从select需要调用controller重新搜索数据并显示。
为此,您可以将查询更改为
user = DB::table('users.users')->where('email','LIKE','%'.$search.'%')->take(10)->get()
对于可搜索的 select 你可以参考 this link and this JSFiddle link