Jetez un œil à la documentation jquery ui autocomplete . Le JSON que vous renvoyez ne correspond pas à ce que recherche la saisie semi-automatique. L'objet que vous renvoyez doit avoir des propriétés nommées étiquette ou valeur (ou les deux).
Vous pouvez essayer les options suivantes :
Option 1 :Modifier le JSON renvoyé
Modifiez le JSON renvoyé pour inclure les propriétés d'étiquette/valeur telles que :
[{"label":"Sin City"}]
D'après les exemples, il semble également utiliser la propriété id. Je crois que ce qui précède est l'exigence minimale pour que la saisie semi-automatique affiche une liste de valeurs. Je pense que vous pouvez également renvoyer un tableau de chaînes et il le rendra exactement de la même manière que ci-dessus.
[ "Sin City", "Etc" ]
Option 2 :Modifier la fonction _render privée
Modifiez la fonction privée _renderItem pour la saisie semi-automatique afin d'utiliser vos propriétés personnalisées, comme indiqué dans cet exemple de saisie semi-automatique (non testé):
$( "#project" ).autocomplete({
source: "./search.php",
minLength: 3
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( item.Title )
.appendTo( ul );
};
C'est un peu plus flexible mais beaucoup plus moche à mon humble avis.