2010-01-07 6 views
0

Je peux envoyer des données au serveur à l'aide de JSON et récupérer les données appropriées, mais avant de gérer correctement les données renvoyées, j'essaie simplement de générer les données JSON renvoyées en tant qu'alertes . Je ne peux pas comprendre pourquoi cela ne fonctionne pas.Comment gérer une réponse JSON avec jQuery

Je reçois une alerte mais la valeur du texte indique "indéfini" - Je ne suis pas sûr de ce que je dois faire pour l'imprimer soit l'intégralité de l'objet JSON soit une partie de celui-ci.

Les deux instructions System.out.println confirment que les informations correctes sortent du servlet.

La classe servlet:

public class EditItemServlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 

    response.setContentType("text/json"); 
    PrintWriter out = response.getWriter(); 
    String itemToEdit = request.getParameter("selectedItem"); 

    System.out.println(itemToEdit); 

    String myString=""; 
    try { 
     myString = new JSONObject().put("selectedItem", itemToEdit).toString(); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    System.out.println(myString); 
    out.print(myString); 
    } 
} 

Voici le jQuery qui envoie la demande et gère la réponse:

$("#edit-form").hide(); 
    $("#edit-item-btn").click(function() { 
     isEditClicked = "yes"; 
     $("#edit-form").show(); 
     var editValue = $("#edit-item-select").val(); 
     $.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues()); 
     alert("wassup"); 
    }); 

    function displayEditValues(data) { 
     alert(data); 
    }; // each 
+0

Merci à tous vos solutions ont été utiles. – Ankur

Répondre

3

Vous devez passer le displayEditValues comme un rappel pas invoquer displayEditValues():

$.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues); 
1
$.getJSON("EditItem",{"selectedItem":editValue},function(){displayEditValues()}); 

De cette manière vous pouvez passer un certain nombre de paramètres à votre fonction displayEditValues() comme

function(){displayEditValues(param1, param2, ..., paramN)} 
1

Essayez ceci:

displayEditValues = function(data) { 
     alert(data); 
    }; 
    $.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues); 

Ou même

$.getJSON("EditItem", {"selectedItem" : editValue}, function(data) { alert(data); }); 
Questions connexes