Мое приложение имеет окно поиска для поиска участников по имени пользователя.
Я хочу добавить функцию typeahead в это поле поиска, аналогичное Facebook.
Мне кажется, что есть три варианта:
Проблемы с каждым из вышеперечисленных вариантов:
До сих пор я попробовал второй вариант, используя AJAX. Вот мой код:
<input id="search_query" name="search_query" type="text" class="form-control" autocomplete="off" placeholder="Search" onkeyup="showHint(this.value)">
function showHint(str) {
if (str.length < 3) {
// pending
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
var hints = JSON.parse(this.responseText);
$("#search_query").typeahead("destroy");
$("#search_query").typeahead({ source: hints });
}
};
var url = '{{ route("search.hints", ["q" => ":q", "table" => ":table"]) }}';
url = url.replace(':q', str);
url = url.replace(':table', tableName);
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
}
Мое текущее решение работает, но есть две проблемы:
Постскриптум На сервере я использую PHP Laravel.
Задача ещё не решена.
Других решений пока нет …