我的网页中有一个带有搜索文本框的引导程序下拉列表。我将动态数据添加到该下拉列表中,但它们很大并且来自数据库。这就是为什么加载需要很长时间。有谁知道这个问题的解决方案?
<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>
答案 0 :(得分:0)
如果您不介意将 选择字段 更改为 输入文本字段 ,我使用此脚本:它是一个自动完成库,可在输入字段下方创建一个列表。它调用一个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);