I'm using materialize ui in an ASP.Net MVC application and I'm using an autocomplete control with dynamic data.
Here is my code,
<div class="row">
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">textsms</i>
<input type="text" id="autocomplete-input" class="autocomplete">
<label for="autocomplete-input">Autocomplete</label>
</div>
</div>
</div>
</div>
This is the jquery ajax call,
$(function () {
$.ajax({
type: 'GET', // your request type
url: "/Home/GetData/",
success: function (response) {
var myArray = $.parseJSON(response);
debugger;
$('input.autocomplete').autocomplete({
data: {
"Arizona (1)": null,
"Florida (2)": null,
"Georgia (3)": null,
"Hawaii(4)": null,
"Idaho (5)": null,
"Illinois (6)": null
}
});
}
});
});
It can accept data only in this format and this is my response,
"[["Arizona (1)"],["Florida (2)"],["Georgia (3)"],["Hawaii (4)"],["Idaho (5)"],["Illinois (6)"]]"
How do I convert my response into the format that autocomplete understands?
Good day. I can suggest a little different approach. Materialize autocomplete has method
So if we want to get ajax to load data, we may add event listener to input field
Not ideal for different data sources, but may be a starting point.
Try to convert your response through this way, in your case you don't need the first line of code.
Not very fancy, but give it a try:
you can easily achieve the autocomplete functionality using the Devberidge plugin.
Get Devbridge plugin using https://github.com/devbridge/jQuery-Autocomplete
Here the getCountry.php file returns the JSON data. For more info visit https://ampersandacademy.com/tutorials/materialize-css/materialize-css-framework-ajax-autocomplete-example-using-php
Using ajax API call for materializecss input autocomplete
I have modified as below to obtain autocomplete input for Countries.
You can get the list of country names from API https://restcountries.eu/rest/v2/all?fields=name