Dê uma olhada na documentação de preenchimento automático da interface do usuário do jquery . O JSON que você está retornando não corresponde ao que o preenchimento automático está procurando. O objeto que você retorna deve ter propriedades denominadas label ou value (ou ambos).
Você pode tentar as seguintes opções:
Opção 1:alterar JSON retornado
Altere o JSON retornado para incluir as propriedades de rótulo/valor, como:
[{"label":"Sin City"}]
A partir dos exemplos, também parece usar a propriedade id. Acredito que o acima é o requisito mínimo para o preenchimento automático exibir uma lista de valores. Eu acho que você também pode retornar um array de strings e ele irá renderizá-lo exatamente da mesma maneira que o acima.
[ "Sin City", "Etc" ]
Opção 2:alterar a função _render privada
Altere a função _renderItem privada do preenchimento automático para usar suas propriedades personalizadas, conforme mostrado neste exemplo de preenchimento automático (não testado):
$( "#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 );
};
Isso é um pouco mais flexível, mas muito mais feio.