Bonjour à tous,
Source : AJAX - une autocomplétion pas à pas (Denis Cabasson)
J'essaie en vain depuis hier de modifier ce tutoriel afin d'obtenir les données d'une base MySql et je bloque toujours sur la réponse XML.
Le fichier options.php stocke une liste de mots dans un tableau qui est ensuite transformé en fichier XML. C'est ce fichier XML qui sert à afficher l'autocomplétion dans le champs de saisit.
J'ai modifié ce fichier de manière à ce que la liste des mots provienne d'une base MySql. L'extraction des données ne pose pas de problème. Je crée un tableau avec les mots tirés de la bd et le fichier XML est bien généré... mais l'autocomplétion ne fonctionne pas.
J'ai l'impression que je ne génère pas le fichier XML correctement. Quelqu'un saurait il me dire d'où vient mon erreur ?
La liste de mots en dur dans le fichier ressemble à ça au départ dans le tutoriel :
Ce qui donne un fichier XML comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $liste = array("abeille","abricot","acheter","acheteur","adjectif","adroit");
Pour ma part, j'ai remplacé la liste "en dur" par le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?xml version='1.0' encoding='UTF-8' ?> <options> <option>abeille</option> <option>abricot</option> <option>acheter</option> <option>acheteur</option> <option>adjectif</option> <option>adroit</option> </options>
Ce qui me donne le résultat XML suivant (et qui me parait propre)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $valeurs = ""; $n = 0; //Sélection des valeurs de la base de données $requete_aliments = "SELECT * FROM fromages ORDER BY fromage_libelle ASC"; $resultat_aliments = requete_SQL($requete_aliments); while ($donnees_aliments = mysql_fetch_array($resultat_aliments)) { $liste[$n] = $donnees_aliments["fromage_libelle"]; $n++; }
Est-ce que je fais une erreur sur la génération du XML ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version='1.0' encoding='UTF-8' ?> <options> <option>Cantadou</option> <option>Chavroux</option> <option>Saint Moret</option> <option>Vache qui rit</option> </options>
Avec mon code l'autocomplétion ne fonctionne tout simplement pas, aucun choix n'est affiché dans la liste lorsque je saisit des lettres dans le champ.
Merci par avance à ceux qui pourront m'aider à trouver une solution.
Partager