温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - how to display select2 after user input 3 data
javascript jquery jquery-select2 select

javascript - 用户输入3个数据后如何显示select2

发布于 2020-03-28 23:39:05

我这里有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);
        }

查看更多

查看更多

提问者
Newbie 123
被浏览
44
Zulqarnain Jalil 2020-01-31 18:47

解决问题的唯一方法是仅记录并显示一些记录。然后从选择中,您需要调用控制器以再次搜索数据并显示它。

为此,您可以将查询更改为

user = DB::table('users.users')->where('email','LIKE','%'.$search.'%')->take(10)->get()

对于可搜索的选择,您可以参考此链接和此JSFiddle链接