Come fare jQuery completamento automatico che passa un id e non un nome?
-
09-10-2019 - |
Domanda
Ero alla ricerca di jQuery UI completamento automatico perché avevo bisogno di un <input />
ma il problema è che ho bisogno di passare l'id del nome completato. Mi spiego:
Ho un array di nomi:
$names = array(
array('name' => 'John', id => '1'),
array('name' => 'Sarah', id => '2'),
array('name' => 'Josh', id => '3)
);
E poi, con AJAX, l'ingresso verrà compilato automaticamente con un nome della matrice, ma poi, quando mi presento, mi serve l'id e non il nome. Come posso gestire?
Grazie in anticipo
Soluzione
Il controllo JQuery UI Autocomplete può accettare l'elenco dei risultati di ricerca come un insieme di visualizzazione / oggetti valore.
Dalla memoria, si crea un oggetto JSON nel seguente 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 proprietà etichetta contiene il testo da visualizzare e il valore proberty contiene l'ID. Questi valori possono essere controllati quando un risultato di ricerca viene selezionato dall'utente. Il controllo ha un evento select
che si può ascoltare.
Altri suggerimenti
Il vostro bisogno di salvare l'ID in un campo nascosto.
È possibile ottenere che l'evento "selezionare". http://jqueryui.com/demos/autocomplete/#event-select
Questo esempio mostra l'evento select http://jqueryui.com/demos/autocomplete/#custom-data
Quindi, l'idea è di fare qualcosa di simile:
select: function( event, ui ) {
$( "#project-id" ).val( ui.item.value );
return false;
}