Comment faire jQuery autocomplete qui passe un identifiant et non un nom?
-
09-10-2019 - |
Question
Je cherchais jQuery UI Autocomplete parce que je avais besoin sur un <input />
mais le problème est que je dois passer l'id du nom complété. Permettez-moi de vous expliquer:
J'ai un tableau de noms:
$names = array(
array('name' => 'John', id => '1'),
array('name' => 'Sarah', id => '2'),
array('name' => 'Josh', id => '3)
);
Et puis, avec AJAX, l'entrée sera autocompleted avec un nom du tableau mais, quand je soumets, je dois l'identifiant et non le nom. Comment puis-je gérer?
Merci à l'avance
La solution
De mémoire, vous créez un objet JSON dans le format suivant ...
[
{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 propriété étiquette contient le texte à afficher et la proberty de valeur contient l'identifiant. Ces valeurs peuvent être inspectés lorsqu'un résultat de recherche est sélectionné par l'utilisateur. Le contrôle a un événement select
que vous pouvez écouter.
Autres conseils
Votre besoin d'enregistrer l'identifiant dans un champ caché.
Vous pouvez y parvenir sur l'événement « select ». http://jqueryui.com/demos/autocomplete/#event-select
Cet exemple montre l'événement select http://jqueryui.com/demos/autocomplete/#custom-data
L'idée est de faire quelque chose comme ceci:
select: function( event, ui ) {
$( "#project-id" ).val( ui.item.value );
return false;
}