https://vue-select.org/
Vue Select is a feature rich select/dropdown/typeahead component. It provides a default template that fits most use cases for a filterable select dropdown.
https://vue-select.org/guide/install.html
axios
https://github.com/axios/axios
Using jsDelivr CDN: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js
VueJS
https://vuejs.org/v2/guide/installation.html
CDN : https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js
CREATE TABLE `country` (
`id` int(6) NOT NULL,
`country` varchar(250) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
//index.html <!DOCTYPE html> <html> <head> <title>Vue.js Axios Dropdown Select Box Search with PHP Mysql</title> <link rel="stylesheet" href="https://unpkg.com/vue-select@3.0.0/dist/vue-select.css"> </head> <body> <div id="app"> <p><h1>Vue.js Axios Dropdown Select Box Search with PHP Mysql and Vue Select </h1></p> <div style="width:500px;"> <p>Countries : <v-select v-model="country" label="name" :reduce="country => country.id" :options="country_options" @search="fetchOptions" @input="selectedOption" > </v-select> </p> <p>Selected Value : <span v-text="country"></span></p> </div> </div> <script src="https://unpkg.com/vue@latest"></script> <script src="https://unpkg.com/vue-select@latest"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> Vue.component('v-select', VueSelect.VueSelect) new Vue({ el: '#app', data: { country: 0, country_options: [] }, methods: { fetchOptions: function(search){ var el = this; // AJAX request axios.get('select.php', { params: { search: search, } }) .then(function (response) { // Update options el.country_options = response.data; }); }, selectedOption: function(value){ console.log("value : " + value); } } }) </script> </body> </html>select.php
//select.php <?php $host = "localhost"; $user = "root"; $password = ""; $dbname = "testingdb"; $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } $search = ""; if(isset($_GET['search'])){ $search = mysqli_real_escape_string($con,$_GET['search']); } $query = 'SELECT * FROM country where country like "%'.$search.'%" '; $result = mysqli_query($con,$query); $response_arr = array(); while($datarow = mysqli_fetch_assoc($result)){ $id = $datarow['id']; $name = $datarow['country']; $response_arr[] = array( "id"=> $id, "name" => $name ); } echo json_encode($response_arr); exit;