Я создаю небольшой веб-сайт для проекта и часами искал способ заполнения ввода автозаполнения с помощью плагина Materialize. Я не очень знаком с JSON или AJAX, поэтому мне очень больно это делать. Исходный пример из документа выглядит так со статическими данными:
$('input.autocomplete').autocomplete({
data: {
"Apple": null,
"Microsoft": null,
"Google": 'http://placehold.it/250x250'
},
limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
onAutocomplete: function(val) {
// Callback function when value is autcompleted.
},
minLength: 1, // The minimum length of the input for the autocomplete to start. Default: 1.
});
Я хотел бы получить динамические данные из моей базы данных.
Я использую этот PHP-код для этого:
<?php
$query = $arg;
echo $query;
$json_output = array();
$reponse = $bdd->query("SELECT CPnom FROM competence where CPnom LIKE ". $query);
while ($donnees = $reponse->fetch()) {
$json_output[] = $donnees[0]. ": null";
}
return json_encode($json_output);
?>
Я предполагаю, что код работает, потому что он отображает [«JAVA»: null, «js»: null, «C»: null], которые соответствуют данным моей базы данных.
Любая идея, как поместить эти данные JSON в этот аргумент данных вместо статических имен?
data: {
"Apple": null,
"Microsoft": null,
"Google": 'http://placehold.it/250x250'
}
Спасибо за ваше время!
var data_2 = JSON.parse(sessionStorage.getItem('key_1'));
$(function() {
$('input.autocomplete').autocomplete({
data: data_2,
limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
onAutocomplete: function(val) {
// Callback function when value is autcompleted.
},
minLength: 2 // The minimum length of the input for the autocomplete to start. Default: 1.
});
});
Других решений пока нет …