Проблема в том, что вы не фильтруете сервер результатов.
Когда вы используете локальную коллекцию, локальная коллекция автоматически фильтруется автозаполнением.
Однако при использовании удаленного источника источник должен фильтроваться. Я предполагаю, что это экономит полосу пропускания, чтобы сервер отправлял только совпадающие элементы, а не все элементы, и позволял браузеру фильтровать в его конце.
При вызове метода на стороне сервера автозаполнение также отправляет параметр с именем term
, который можно использовать для фильтрации.
Вы можете получить введенное значение в своем php-скрипте следующим образом:
$term = trim(strip_tags($_GET['term']));
Затем в вашей foreach
добавьте только элементы, соответствующие фильтру, в свою коллекцию, прежде чем отправлять ее снова.