2 votes

L'autocomplétion Jquery propose toujours toutes les options.

Peu importe ce que je tape dans la zone de texte, la liste complète est toujours affichée. Voici mon code :

$("#tb_country").autocomplete({
  source: function(request, response) {
    $.ajax({
      url: "/index.php/ajax_calls/select_countries",
      dataType: "json",
      data:  request,
      success: function(data) {
        response(data);
      }
    });
  },
  minLength: 3
});

Le site sélectionner_pays renvoie des données JSON dans le bon format pour l'autocomplétion, à savoir [{"label" : "United States"},{"label" : "Canada"}........] S'il vous plaît, quelqu'un peut-il me dire ce qui ne va pas, merci.

5voto

raina77ow Points 45965

Assurez-vous que vous filtrez réellement votre réponse dans le code côté serveur, comme décrit ci-après. aquí :

Le plugin Autocomplete ne filtre pas les résultats, au lieu de cela une requête est ajoutée à un champ de termes, qui le script côté serveur doit utiliser pour filtrer les résultats . Par exemple, si l'option source est est définie sur " http://example.com " et que l'utilisateur tape foo, une requête GET est envoyée à http://example.com?term=foo .

Vous envoyez bien la demande correcte (avec term paramètre rempli par la valeur actuelle de input ), mais la plupart ne l'utilisent probablement pas dans le code du serveur.

0voto

helderjsm Points 111

Le problème est peut-être que la réponse n'est pas dans le contexte ?

Au lieu d'utiliser response(data), vous pouvez essayer un onchange qui récupère les données du serveur et ensuite définir la source comme ceci :

$("#tb_country").autocomplete( "option", "source", serverData );

Je n'ai pas non plus compris si le problème se situe dans les données renvoyées par le serveur ou dans le jquery. Si le problème vient des données du serveur, vous devez vous assurer de ce qui est envoyé dans la requête.

Edit : Ce doit être un problème de serveur puisque les données ont déjà été remplies une fois. Pouvez-vous s'il vous plaît poster les Request Headers et ou la fonction du serveur ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X