Как обрабатывать большие данные в выпадающем списке с помощью окна поиска начальной загрузки

У меня есть один загрузчик выпадающий с текстовым полем поиска на моей веб-странице. Я добавляю динамические данные в этот выпадающий список, но они большие и поступают из базы данных. Вот почему это занимает много времени, чтобы загрузить. Кто-нибудь знает решение этой проблемы?

<select data-live-search="true" name="paymentfacility" id="paymentfacility" data-live-search-style="startsWith" class="selectpicker">
<?php
foreach($facilitiesall as $val)
{?>
<option value="<?php echo $val['Facility']['id']; ?>">
<?php echo $val['Facility']['name']; ?>
</option>
<?php } ?>
</select>

2

Решение

Если вы не против, чтобы изменить выберите поле в поле ввода текста, Я использую этот скрипт: это библиотека автозаполнения, которая создает список чуть ниже поля ввода. Он вызывает php-файл, который ищет то, что я ищу, поэтому вы не загружаете все БД ..

https://github.com/jhonis/bootcomplete

JS

$('#inputText').bootcomplete({
url: 'search.php',
method: 'post',
minLength: 2
});

PHP

$txt = $_POST['query'];

$helper = new PDO(CONNECTION_DNS, CONNECTION_USER, CONNECTION_PWD);
$helper->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// YOU MUST HAVE id AND label AS RETURN DATA
$stmt = $helper->prepare('SELECT P.Id as id, P.Code as label FROM TABLE_NAME WHERE Code LIKE :Query');
$stmt->bindValue(':Query', '%'.$txt.'%', PDO::PARAM_STR);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

print json_encode($results);
0

Другие решения

Других решений пока нет …