Autocompletion en jQuery
7/02/09
Voici un plugin jQuery facilitant l’autocompletion : Autocomplete. Il est très simple d’utilisation et il est facilement customisable. Comme d’habitude, rien de mieux qu’un exemple concret d’utilisation pour comprendre. Le fonctionnement de cet exemple est très simple et cumule des notions abordées auparavant. Au chargement de la page, l’ajax interroge un script PHP qui retourne un flux XML contenant plusieurs éléments (pouvant être issus d’une requête SQL). Il ne reste alors plus qu’a appeler la fonction pour déclencher l’autocompletion.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="jquery.js"></script>
<script type="text/javascript" src="jquery.autocomplete.pack.js"></script>
<style type="text/css">
.ac_results {
padding: 0px;
border: 1px solid black;
background-color: white;
overflow: hidden;
z-index: 99999;
}
.ac_results ul {
width: 100%;
list-style-position: outside;
list-style: none;
padding: 0;
margin: 0;
}
.ac_results li {
margin: 0px;
padding: 2px 5px;
cursor: default;
display: block;
/*
if width will be 100% horizontal scrollbar will apear
when scroll mode will be used
*/
/*width: 100%;*/
font: menu;
font-size: 12px;
/*
it is very important, if line-height not setted or setted
in relative units scroll will be broken in firefox
*/
line-height: 16px;
overflow: hidden;
}
.ac_loading {
/*background: white url('indicator.gif') right center no-repeat;*/
}
.ac_odd {
background-color: #eee;
}
.ac_over {
background-color: #0A246A;
color: white;
}
</style>
<script type="text/javascript">
// Lorsque la totalité de la page est chargée
$(document).ready(function() {
$.ajax({ // Requete ajax
type: "POST", // envoie en POST
url: "test.php", // url cible du script PHP
async: true, // mode asynchrone
data: "", // données envoyées
success: function(xml){ // Lorsque le PHP à renovyé une réponse
var elementsArray = new Array();
$(xml).find('element').each(function(){ // pour chaque "element"
elementsArray.push($(this).text()); // ajout dans le tableau
});
$("#example").autocomplete(elementsArray); // activation de l'autocompletion
}
});
});
</script>
</head>
<body>
Autocompletion : <input id="example" />
</body>
</html>
header ("content-type: text/xml");
echo "
<root>
<element>element 1</element>
<element>element 2</element>
<element>element 3</element>
<element>element 4</element>
<element>element 5</element>
<element>element 6</element>
<element>element 7</element>
<element>element 8</element>
<element>element 9</element>
<element>element 10</element>
<element>element 11</element>
</root>";
Tout ca pour donner :
Article(s) sur le même sujet :



17 décembre 2009 - 17 h 08 min
Simpa cet exemple d’autocompletion !
Je vais l’essayer de suite ! Thanks encore
24 février 2010 - 17 h 25 min
Vraiment bien ce script.
26 mai 2010 - 17 h 29 min
Bonjour,
j’ai essayé le plugin, il fonctionne parfaitement mais j’aimerais l’utiliser avec une base de données, le problème qui se pose, c’est comment passé en paramètre les données saisies, je pense que c’est via l’attribut data (de l’exemple) mais je ne sais pas comment faire. Pourrais-tu m’éclarer ?
PS : je débute avec jquery
7 juin 2010 - 15 h 34 min
Bonjour,
Le script est impeccable. Sous FF 3.6.3, il fonctionne bien. Par contre, sous IE 8, la liste ne s’affiche pas. Est-ce que c’est normal ? Merci d’avance
14 juin 2010 - 10 h 49 min
Bonjour, idem ne fonctionne pas sous IE8, dont aucun interet
14 juin 2010 - 11 h 08 min
Bonjour et merci pour ton commentaire très constructif… En faite, tout simplement, le plugin à été repris par jQuery et n’est donc plus maintenu à l’URL donnée. Je ne peux bien sur pas maintenir chaque jour tous mes billets
Voir :
http://docs.jquery.com/Plugins/Autocomplete
http://docs.jquery.com/UI/Autocomplete
10 août 2010 - 10 h 53 min
J’ai testé hier le script et ça marche à merveille (sous FF).
1 septembre 2010 - 13 h 39 min
Il existe aussi un plugin jQuery nommé « gcomplete », pour une petite démonstration :
http://mdormeval44.free.fr/demos/002-autocompletion-avec-jquery.html
12 novembre 2010 - 15 h 50 min
Bonjour,
Pareil, ta raison, IE8-> ce navigateur n’a aucun intérêt , autant utiliser un vrai navigateur qui sait interpréter les langages web…
PS/ Et c’est pas « dont » qui faut écrire pas « donc »…
Vous croyez qu’ils ont développer IE6 (même le 7) pour aller sur internet, moi je me demande si c’était prévu pour autre chose vu comme il s’en sortait comme un manche pour nous servir les pages web…
A bon entendeur, bonne journée.
Nicolas.
30 décembre 2010 - 16 h 30 min
Bonjour,
Je surf exclusivement avec Google Chrome et lire ici qu’IE n’a aucun intérêt me fait bien marrer !
Faut se réveiller, bien qu’IE n’ai pas bonne presse, il reste encore aujourd’hui le leader.
Cf. les parts de marché :
http://fr.wikipedia.org/wiki/%C3%89volution_de_l'usage_des_navigateurs_Internet
Une usine à gaz en Ajax qui ne supporte pas IE, ça c’est inutile.
Nicolas, révise ton orthographe avant de jouer à maître Capello
13 janvier 2011 - 17 h 38 min
sachant qu’IE8 ne respect pas la norme en effet aucun interet de tester sous IE8
5 avril 2011 - 22 h 24 min
100% d’accord, IE en general même…
25 mai 2011 - 15 h 04 min
Clairement, IE ne respecte pas grand chose.
Merci pour ces infos en tout cas.