Cómo hacer jQuery autocompletado que pasa un identificador y no un nombre?
-
09-10-2019 - |
Pregunta
Yo estaba buscando jQuery UI autocompletar porque necesitaba en un <input />
pero el problema es que necesito para pasar el ID del nombre completo. Me explico:
Tengo una matriz de nombres:
$names = array(
array('name' => 'John', id => '1'),
array('name' => 'Sarah', id => '2'),
array('name' => 'Josh', id => '3)
);
Y luego, con AJAX, la entrada será autocompletar con un solo nombre de la matriz, pero luego, cuando presente, necesito el ello y no el nombre. ¿Cómo es propietario de I?
Gracias de antemano
Solución
jQuery UI autocompletar puede aceptar la lista de resultados de búsqueda como un conjunto de visualización / objetos de valor.
De memoria, se crea un objeto JSON con el siguiente formato ...
[
{label:"Display Name for result 1", value:1},
{label:"Display Name for result 2", value:2},
{label:"Display Name for result 3", value:3}
]
La propiedad etiqueta contiene el texto a visualizar y el valor proberty contiene el id. Estos valores pueden ser inspeccionados cuando un resultado de la búsqueda es seleccionado por el usuario. El control tiene un evento select
que se puede escuchar.
Otros consejos
Su necesidad de guardar el id en un campo oculto.
Se puede lograr que en el caso de "seleccionar". http://jqueryui.com/demos/autocomplete/#event-select
Este ejemplo muestra el evento select http://jqueryui.com/demos/autocomplete/#custom-data
Así que la idea es hacer algo como esto:
select: function( event, ui ) {
$( "#project-id" ).val( ui.item.value );
return false;
}