Autocomplete avec jQuery
Résolu/Fermé
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
-
Modifié par Heryu le 7/01/2013 à 12:03
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 - 8 janv. 2013 à 10:45
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 - 8 janv. 2013 à 10:45
A voir également:
- Autocomplete avec jQuery
- Regex jquery ✓ - Forum Javascript
- Tampermonkey jquery - Forum Javascript
- JQuery non interprété - Forum Wordpress
- Jquery format date - Forum Webmastering
- Jquery animate toggle ✓ - Forum Javascript
4 réponses
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
Modifié par Heryu le 7/01/2013 à 12:36
Modifié par Heryu le 7/01/2013 à 12:36
Merci de ta réponse.
Le contenu du JSON est juste en dessous du code HTML que j'ai donné plus haut :
JSON
Le contenu du JSON est juste en dessous du code HTML que j'ai donné plus haut :
JSON
{"products":[ { "famille":"Accessoires", "name":"Lot de 10 Sachets de 50 Protèges-cartes" }, { "famille":"Accessoires!", "name":"Classeur" } ]}
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
Modifié par Heryu le 8/01/2013 à 10:24
Modifié par Heryu le 8/01/2013 à 10:24
J'ai trouvé une alternative qui fonctionne parfaitement, mais cette méthode permet de faire une recherche sur des elements commençant par la string recherchée.
J'aurais préféré que ça recherche n'importe où dans le texte, que si je tape voi, qu'il ne me sorte pas que Voiture mais Avoine etc.
Voici le code que j'ai utilisé :
Javascript
JSON (_json_products_list.php)
Merci d'avance si quelqu'un a une idée ^^
J'aurais préféré que ça recherche n'importe où dans le texte, que si je tape voi, qu'il ne me sorte pas que Voiture mais Avoine etc.
Voici le code que j'ai utilisé :
Javascript
$.ajax({ // Requete ajax type: "POST", // envoie en POST url: "_json_products_list.php", // url cible du script PHP async: true, // mode asynchrone data: "", // données envoyées success: function(xml) { // Lorsque le PHP à renvoyé une réponse var elementsArray = new Array(); $(xml).find('element').each(function() { // pour chaque "element" elementsArray.push($(this).text()); // ajout dans le tableau }); $("#prods_list").autocomplete(elementsArray); } });
JSON (_json_products_list.php)
header ("content-type: text/xml"); echo "<root> <element>Avoine</element> <element>Voiture</element> </root>";
Merci d'avance si quelqu'un a une idée ^^
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
Modifié par Heryu le 8/01/2013 à 10:46
Modifié par Heryu le 8/01/2013 à 10:46
J'ai trouvé la solution en rajoutant un matchContains: true, afin que mon javascript donne :
$.ajax({ // Requete ajax type: "POST", // envoie en POST url: "js/autocomplete/_json_products_list.php", // url cible du script PHP async: true, // mode asynchrone data: "", // données envoyées success: function(xml) { // Lorsque le PHP à renvoyé une réponse var elementsArray = new Array(); $(xml).find('element').each(function() { // pour chaque "element" elementsArray.push($(this).text()); // ajout dans le tableau }); $("#prods_list").autocomplete(elementsArray, { width: 600, matchContains: true, selectFirst: false }); } });