Estoy usando la función de autocompletado de la interfaz de usuario jQuery. Puedo hacer que funcione con el ejemplo proporcionado con la interfaz de usuario jQuery de esta manera:jQuery UI autocompletar con JSON desde la URL
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#tags").autocomplete({
source: availableTags
});
Esto funciona sin ningún problema. Pero necesito usar JSON como mi fuente de datos que pueden ser recuperados de esta manera: http://mysite.local/services/suggest.ashx?query=ball
Si voy a esa URL consigo JSON como esto:
[{"id":12,"phrase":"Ball"},{"id":16,"phrase":"Football"},{"id":17,"phrase":"Softball"}]
¿Cómo puedo usar mi URL como la fuente de datos?
He intentado cambiar la opción de fuente de la siguiente manera:
$("#tags").autocomplete({
source: "http://mysite.local/services/suggest.ashx"
});
Pero no ayuda. Supongo que el servicio no sabe qué palabra clave se ha escrito en el campo de entrada, más o menos.
Cualquier puntero sería genial.
Gracias por la respuesta. Creo que puedo editar el JSON devuelto a la etiqueta y el valor en lugar de identificación y frase. Pero si cambio el JSON devuelto, ¿he utilizado la fuente correcta en mi ejemplo, o tengo que enviar el texto escrito al servicio de alguna manera? Me refiero a que el servicio toma un parámetro llamado "consulta", por lo que de alguna manera supongo que también tiene que enviar ese parámetro. ¿O estoy totalmente fuera de aquí? –
Así que si cambias tu servicio web para devolver lo correcto pero tomas un argumento llamado 'query', tu código se verá similar al anterior, excepto que simplemente llamarás' response (data) 'en el manejador' success'. En otras palabras, dado que está cambiando la solicitud AJAX predeterminada que tiene lugar, igual tendrá que hacerlo usted mismo. –
Genial, lo intentaré cuando regrese a mi computadora de desarrollo. Y al escribir datos: {query: request.term}, se llamará al servicio web con la entrada correcta como parámetro de consulta ¿verdad? –