2012-03-28 12 views
3

ich diesen Code haben, das gut funktioniert:Zugriff auf Ajax Response Data

{"livre":"empty_name"} 

    $.ajax({ 
     url: "sent.php", 
     type: "post", 
     dataType: "json", 
     data: formdata, 
     success: function (data) { 
      switch (data.livre) { 
        case 'empty_name': 

        break; 
     } 
    }); 

aber wenn ich diesen Code versuchen (Ich brauche die ID), der Fall "leer Name" nicht funktioniert. Die ausgewählte Option ist der Standardfall:

{"id":"","livre":"empty_name"} 

    $.ajax({ 
     url: "sent.php", 
     type: "post", 
     dataType: "json", 
     data: formdata, 
     success: function (id, data) { 
      switch (data.livre) { 
       case 'empty_name': 

       break; 
     } 
    }); 

Warum? und wie kann gelöst werden? Dank

+2

Sie sind sicher, dass Sie keinen JavaScript-Fehler haben. Ihre Schalter-Syntax sieht falsch aus - Botengang '});' –

+0

Installieren Sie Fiddler, es wird Ihnen helfen, Ihr Problem massiv zu debuggen. Es zeigt eine Liste von Anfragen einschließlich Ihrer Ajax-Antworten und Ihrer Antworten an. – NibblyPig

+2

Ich denke, er gibt uns minimalen Code, nicht falschen Code. Versuchen Sie stattdessen, Daten ['Livre'] zu verwenden ...? Ich sehe das Problem nicht wirklich, ich hoffe nur ... – Stefan

Antwort

3

Wenn ich mich richtig mit dem Objekt verstehen oben auf die JSON-Antwort zu sein, ich glaube, Sie wollen diese ...

{"id":"","livre":"empty_name"} 

$.ajax({ 
    url: "sent.php", 
    type: "post", 
    dataType: "json", 
    data: formdata, 
    success: function (data) { 
     var jsonId = data.id; 
    } 
}); 

Der data Parameter des success Rückruf Ihre Antwort enthält (in diesem Fall, JSON Daten). Sie greifen dort auf Ihren JSON-Content zu.

1

Sie müssen nur verstehen, wie die Daten zurückgegeben werden. In diesem Fall ist data das Objekt, das alle Felder enthält. Ihr Erfolgsrückruf würde weiterhin so aussehen: success: function(data) Der Code, den Sie ändern müssen, befindet sich im Methodenblock selbst.

$.ajax({ 
    url: "sent.php", 
    type: "post", 
    dataType: "json", 
    data: formdata, 
    success: function (data) { 
     var id = data.id; //ID lives in data. 
     switch (data.livre) { 
    } 
}); 

Da Sie die Funktion neu definiert, wird der Schalter scheitern, weil in dem Beispiel livre geschrieben wird im id Objekt wohnen und nicht im data Objekt.