В настоящее время я создаю веб-сайт, и я должен использовать API для восстановления всех высших учебных заведений во Франции, чтобы, когда пользователь регистрируется, он вводил данные своего университета и предлагал ему выбор благодаря автозаполнению Jquery ui.
И вот что это дает:
$('#recherche').autocomplete({
open: function () { $('.ui-autocomplete').css('z-index', 1050);},
source : function(requete, response){ // les deux arguments représentent les données nécessaires au plugin
$.ajax({
url : 'https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search//?dataset=fr-esr-principaux-etablissements-enseignement-superieur', // on appelle le script JSON
dataType : 'json', // on spécifie bien que le type de données est en JSON
data : {
q : $('#recherche').val() // on donne la chaîne de caractère tapée dans le champ de recherche
},
success : function(donnee){
console.log('k');
response($.map(donnee, function(){
var tab = [];
for(var i= 0; i < donnee["records"].length; i++)
{
tab[i] = donnee["records"][i]["fields"]["uo_lib"];
}
console.log(tab);
return tab; // on retourne le tableau des écoles
}));
}
});
},
select : function(event, ui){ // lors de la sélection d'une proposition
$('#recherche').val( ui.item.desc ); // on ajoute la description de l'objet dans un bloc
}
});
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
max-width: 217px;
z-index: 1000;
float: left;
display: none;
min-width: 160px;
padding: 4px 0;
margin: 0 0 10px 25px;
list-style: none;
background-color: #ffffff;
border-color: #ccc;
border-color: rgba(0, 0, 0, 0.2);
border-style: solid;
border-width: 1px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*border-right-width: 2px;
*border-bottom-width: 2px;
}
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slideReveal/1.1.2/jquery.slidereveal.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="recherche" name="school" class="center bottom-margin-10" type="text" placeholder="Libellée établissement" >
Попробуйте написать "Капитолий", и вы увидите, что тот же результат присутствует в 3 раза, я не могу понять, почему