Question

J'ai un widget jquery ui autocomplete sous une forme et je voudrais présélectionner sa valeur à partir d'une base de données. Mon autocomplete fonctionne de la manière suivante: l'identifiant est un numéro, tha étiquette et la valeur sont les mêmes et sont une concaténation de id + « - » + description. Lorsqu'une valeur de la saisie semi-automatique est sélectionné, la valeur d'un champ caché est défini sur la valeur id. Ensuite, la valeur du champ caché est enregistré dans la db lorsque le formulaire est soumis. Lorsque l'utilisateur revient sur la page pour l'édition, je dois recharger la valeur de la db: Je mets la valeur du champ idden à nouveau et je voudrais précompiler la valeur du widget autocomplete avec la concaténation de id + « - » + description prise sous forme de la db. Je pense que je devrais déclencher l'événement de sélection d'une ligne dans la saisie semi-automatique, mais je ne sais pas comment faire. Avez-vous des idées? Je vous remercie Voici le code de la saisie semi-automatique:

$('#codice_contratto').autocomplete({
    source: 'do_contratto.php',
    select: function(event, ui) {
                $('#id_contratto').val(ui.item.id);
            }
});
Était-ce utile?

La solution

Dans le code côté serveur qui renvoie la page pour l'édition, je recommande la mise en juste valeur des deux la zone de texte saisie semi-automatique, ainsi que le champ caché à leurs valeurs correctes comme renvoyé par le serveur. Ce serait une solution côté serveur, et votre HTML pourrait ressembler à ceci:

<input type="textbox" id="condice_contratto" value="1 - the description" />
<input type="hidden" id="id_contratto" value="1" />

Le plug-in JQuery remplissage automatique fonctionne grâce lorsque la valeur de l'élément est préréglée. Il n'y a pas vraiment une notion de « sélection » un élément dans le comportement par soi. Il monte juste au-dessus d'une zone de texte et définit sa valeur avec beaucoup de fantaisie UI.

Si vous avez besoin d'une solution côté client, il suffit de faire quelque chose comme ceci:

$(document).ready(function() {
   $('#condice_contratto').val(current_id + ' - ' + current_description);
   $('#id_contratto').val(current_id);
}

Cela suppose les variables current_id et current_description sont à leurs valeurs correctes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top