2013-07-09 3 views
2

Je suis nouveau à jQuery et j'essaie d'utiliser le widget de saisie semi-automatique avec un appel ajax à ma base de données.Jquery autocomplete question

Je suis capable d'appeler la base de données, j'ai renvoyé ArrayList de valeurs de chaîne, et j'ai converti la réponse en objet JSON en utilisant org.codehaus.jackson.map.ObjectMapper (Dois-je utiliser autre chose?). Quand je mets un autel, je peux voir les résultats comme des chaînes pures avec un délimiteur de virgule, mais je ne peux pas voir une liste de suggestions avec saisie semi-automatique.

code Java qui retourne l'objet JSON en utilisant org.codehaus.jackson.map.ObjectMapper:

response.setContentType("application/json"); 
response.setHeader("cache-control", "no-cache"); 
ArrayList polNo = doa.getPolicyData(ajaxForm.getPolicyNumber()); 
ObjectMapper mapper = new ObjectMapper(); 
OutputStream out = response.getOutputStream(); 
mapper.writeValue(out, polNo); 

code JavaScript:

$("#policyNumber").autocomplete({ 
source: function (request,response){ 

$.ajax({ 
type: "POST",  
url: "/NB/AjaxSubmit.do", 
    dataType: "json",   
    data: {policyNumber: request.term}, 

    success: function (data) { 
    alert(data);  
    } 

    }); 

},minLength: 3 
}); 

données d'alerte indiquant que: TMA412732,TMA412733,TMA412734


Dans le code ci-dessus, je retourné ArrayList de valeurs de chaîne et a pu montrer dans autopopulat e. J'ai amélioré le code ci-dessus pour renvoyer la liste des objets de personne qui a le prénom, le nom de famille etc. Maintenant, quand l'utilisateur tapant le sapin ou le nom dans l'autopopulate, je voudrais suggérer le prénom, le nom de famille.

Quelqu'un pourrait-il aider à améliorer cela? Merci!

succès: function (données) { réponse (données); // u oublié de définir des données sur la réponse }

+1

Vous êtes ne passant jamais 'data' à la fonction' response'. Que se passe-t-il si vous ajoutez 'response (data)'? –

Répondre

0

Modifier fonction succès comme

success: function (data) { 
response(data); //u forgot to set data on response 

}

+0

Merci pour la réponse qucik. Je n'ai pas implimenté plus loin. Je ai, juste essayer de voir wha tdata je vais revenir dans "données" et il me montre comme "TMA412732, TMA412733, TMA412734". Je cherche la prochaine étape pour montrer la saisie semi-automatique. – user2088016

+0

@ user2088016: C'est ce que vous devez faire pour le montrer dans la saisie semi-automatique. –

+0

Génial ça marche maintenant :) Merci à tous. Je voudrais poser une question sur Emore. En supposant que je passe un tableau d'obejcts (objet contenant la valeur et la description), je voudrais montrer la description pour auto complète, mais une fois qu'il est sélectionné, j'ai besoin de capturer sa valeur comme boîte de sélection. – user2088016