简体   繁体   English

如何通过搜索 MySQL 数据库创建下拉菜单

[英]How do I create a dropdown menu with a search for MySQL database

I want to create a select box with a search option just like this but the option is from my database.我想创建一个带有搜索选项的 select 框,但选项来自我的数据库。

The code I have so far我到目前为止的代码

<form name="form1" action="" method="post">                            
<table>
    <tr>                                    
        <td>
            <select name="id" class="form-control selectpicker">
                <?php
                $res=mysqli_query ($link,"select id, nama from peminjaman");
                while ($row = mysqli_fetch_array($res)) 
                {
                    echo "<option>";
                    echo $row["id"].". " .$row["nama"];
                    echo "</option>";
                }
                ?>
            </select>
        </td>

try this.尝试这个。

 function myFunction() { document.getElementById("myDropdown").classList.toggle("show"); } function filterFunction() { var input, filter, ul, li, a, i; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); div = document.getElementById("myDropdown"); a = div.getElementsByTagName("a"); for (i = 0; i < a.length; i++) { txtValue = a[i].textContent || a[i].innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { a[i].style.display = ""; } else { a[i].style.display = "none"; } } }
 .dropbtn { background-color: #04AA6D; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; }.dropbtn:hover, .dropbtn:focus { background-color: #3e8e41; } #myInput { box-sizing: border-box; background-image: url('searchicon.png'); background-position: 14px 12px; background-repeat: no-repeat; font-size: 16px; padding: 14px 20px 12px 45px; border: none; border-bottom: 1px solid #ddd; } #myInput:focus {outline: 3px solid #ddd;}.dropdown { position: relative; display: inline-block; }.dropdown-content { display: none; position: absolute; background-color: #f6f6f6; min-width: 230px; overflow: auto; border: 1px solid #ddd; z-index: 1; }.dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; }.dropdown a:hover {background-color: #ddd;}.show {display: block;}
 <div class="dropdown"> <button onclick="myFunction()" class="dropbtn">Dropdown</button> <div id="myDropdown" class="dropdown-content"> <input type="text" placeholder="Search.." id="myInput" onkeyup="filterFunction()"> <a href="#about">About</a> <a href="#base">Base</a> <a href="#blog">Blog</a> <a href="#contact">Contact</a> <a href="#custom">Custom</a> <a href="#support">Support</a> <a href="#tools">Tools</a> </div> </div>

The way you are doing it assume you have a lot of data in the database and you want to load them every time you load the page.你这样做的方式假设你在数据库中有很多数据并且你希望每次加载页面时都加载它们。 That is going to slow down everything.那会减慢一切。 You should go for an AJAX way of working.对于 AJAX 的工作方式,您应该 go。 And also it is already done with select2 jquery plugin.而且它已经用 select2 jquery 插件完成了。 Here is the link for that.这是该链接。

https://select2.org/data-sources/ajax https://select2.org/data-sources/ajax

Already many things are done in the api. You just have to encode the data into JSON. Actually it is better if you start from here. api已经做了很多事情,你只要把数据编码成JSON就可以了,其实从这里开始比较好。

https://select2.org/data-sources https://select2.org/data-sources

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM