как отобразить select2 после ввода данных пользователем 3 - PullRequest
0 голосов
/ 31 января 2020

У меня есть select2 здесь для отображения данных электронной почты пользователя, но данные могут достигать десятков тысяч, и это делает мой select2 очень медленным, есть ли способ отображать только после трехбуквенного ввода пользователя?

этот мой скрипт 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);
        }

1 Ответ

1 голос
/ 31 января 2020

единственное решение вашей проблемы - взять только некоторые записи и отобразить их. и затем из select вам нужно вызвать контроллер для повторного поиска данных и их отображения.

, для этого вы можете изменить свой запрос на

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

для поиска с возможностью выбора, на который вы можете ссылаться эта ссылка и эта JSFiddle ссылка

...