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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<s:textfield id="personnes" name="personnes"/>
Voici ma jsp représentant la liste des personnes trouvées en base :
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>
Voici mon code Javascript :
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;
	};
Quelqu'un aurait-il une piste svp?