Bonjour,
J'ai un champ texte représentant des personnes et je souhaite que lorsqu'un utilisateur entre des caractères dans ce champ, il lui soit proposé la liste des personnes existant en base.
J'utilise le framework Struts 2 et le widget autocomplete de la librairie Jquery 10.
Actuellement, je récupère bien le nom des personnes de la base de données (je le vérifie avec un "alert(..)" dans mon javascript) mais rien ne s'affiche comme suggestions.
Voici mon input dans la jsp :
Voici ma jsp représentant la liste des personnes trouvées en base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <s:textfield id="personnes" name="personnes"/>
Voici mon code Javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <%@ taglib prefix="s" uri="/struts-tags"%> <s:iterator value="listePersonnes"> <s:property value="id" /> | <s:property value="nom" /> </s:iterator>
Quelqu'un aurait-il une piste svp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 $('#personnes').autocomplete({ minLength : 2, source : function(request, response){ $.ajax({ url : "rechercherPersonnes.do", data : request, type : 'GET', success: function(data) { data = parse(data); response($.map(data, function(item) { alert("item.nom = " + item.nom + ", item.id" + item.id); return { label: item.nom, value: item.id }; })); }, error : function(data) { alert('ERROR' + data); } }); } }); function parse(data) { var parsed = []; var rows = data.split("\n"); for (var i=0; i < rows.length; i++) { var row = $.trim(rows[i]); if (row) { row = row.split("|"); parsed[parsed.length] = { id: row[0], nom : row[1] }; } } return parsed; };
Partager