3

我的网页中有一个带有搜索文本框的引导下拉菜单。我正在将动态数据添加到该下拉列表中,但它们很大并且来自数据库。这就是为什么加载需要很长时间。有谁知道这个问题的解决方案?

<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>
4

1 回答 1

0

如果您不介意将选择字段更改为输入文本字段,我使用此脚本:它是一个自动完成库,可在输入字段下方创建一个列表。它调用一个 php 文件来搜索我正在寻找的内容,因此您不会加载所有 DB..

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);
于 2018-05-24T07:34:50.420 回答