J'utilise le Plugin JQuery-Autocomplete pour obtenir des suggestions d'achèvement de la chaîne d'entrée en utilisant un Ajax Appel à un serveur. En outre, le serveur s'occupe de renvoyer les résultats dans l'ordre dans lequel je souhaiterais qu'ils apparaissent, mais l'autocomplete les montre dans un ordre différent. p>
Comment puis-je configurer JQuery Autocomplete pour ne pas réorganiser la sortie? Je n'ai besoin d'aucun type de traitement de la fin du client, car les données ont déjà été classées / triées au besoin. P>
3 Réponses :
Trier simplement les résultats du serveur avant de l'envoyer à la section automatique doit le faire.
Donc avant que vous Vous pouvez Essayez également quelque chose comme ceci: strong> p> La logique consiste à accumuler une gamme de matchs qui commencent avec le terme, puis concaténent qu'avec les correspondances qui contiennent le terme mais ne commencent pas avec elle . p> Source: strong> HTTPS: //stactverflow.com/a/8302996/973155 p> p> echo json_encode ($ retour_arr); code> Utilisez le
Trier () Code> fonction sur
$ retour_arr code> p>
Le serveur s'occupe de renvoyer les résultats dans l'ordre dans lequel je voudrais qu'ils apparaissent, mais l'autocomplete les montre dans un ordre différent. Code> On dirait que l'OP fait déjà cela.
Stackoverflow.com/a/8302996/277923 Je lisez ceci à partir du lien ci-dessus, mais je suis incapable de comprendre comment puis-je Utilisez ceci pour faire «Pas de tri» du tout. Je voudrais que JQuery-Autocomplete montrait le résultat dans la commande renvoyée par l'appel Ajax.
J'ai partagé le code concerné dans la prochaine réponse Stackoverflow.com/a/10950584/277923
Farhan, si vous n'avez pas écrit le code ci-dessus, c'est Etiquette de partager sa source. Andrew Whitaker a publié cette dernière année dans le lien Rajatkhanduja mentionné ci-dessus.
c'est parfait! Tri des éléments qui commencent par le terme avant la tri alphabétique est une énorme amélioration de la convivialité lorsqu'il est une excellente amélioration des grands ensembles. Merci!
Stackoverflow.com/Questtions/38857001 / ... répondre s'il vous plaît
Eh bien, il s'est avéré être plus simple que je pensais. J'ai décidé de lire le code du plugin et de le modifier en commentant le code qui trie ma sortie. P>
C'est quand j'ai trouvé une variable 'sortresults: true' en défaut. Donc, tout ce dont j'avais besoin était de définir cette variable à la fausse. Je n'ai pas trouvé cela dans la documentation cependant. P>
La sortie est maintenant dans l'ordre exact dont j'ai besoin. P>
J'ai eu l'idée de lire le code pour trouver / résoudre le problème d'ici: jQuery" autocomplete "plugin est en train de gâcher l'ordre de mes données
(Ce n'est pas le même plugin) p>
merci. :) p> $ ('# rechercher'). Autocomplete ({URL: "index.php", sortresults: false}) code> p> p>
Fera sûrement cela, après 48 heures.
Cela ressemble plus à cela, tellement plus facile d'afficher le résultat pré-traité du serveur que le côté de la clientèle. +1
Êtes-vous sûr que vous utilisez le JQUERY UI SATECOMPOMPET Widget ? J'ai parcouru la documentation GitHub Source et API et 1. Le paramètre URL n'existe pas 2. Les sortressults n'apparaissent jamais nulle part dans la source (la version 1.8) ...
Les sortresults code> n'existent pas comme une option et cela ne semble pas fonctionner. Les pensées?
Comme il n'y a pas d'options de sortressultes dans la construction actuelle du plug-in Jquery Autocomplecte, je devais rechercher une autre solution à ce problème et découvert la seule raison pour laquelle le plugin est le résultat du serveur est que la réponse du serveur est normalisée chaque fois que ce n'est pas un tableau purs. Objets {Label: ..., valeur: ...}. p>
Considérant PHP comme langue de votre utilisation,
Merci @skophek! Juste pour clarifier, fournissez-le au paramètre de réponse de la fonction source: [{étiquette: "Suggestion", valeur: "Suggestion"},] code> - pas ceci:
["Suggestion",] code>
Qu'est-ce que vous entendez par "Auto complet les montre dans un ordre différent"?
Je veux dire que l'ordre des chaînes affichées dans la liste déroulante est différente de celle renvoyée par le serveur (qui est une chaîne de séquence séparée de "\ n" de caractères, comme indiqué dans la documentation).