2016-04-28 4 views
0

Meine Ajax-Code wie dieser nun console.log(data[i].1_assigned_accepted); gibt mirKann nicht JSON Ergebnis in AJAX Succcess Anzeigen

$.ajax({ 
    type : "POST", 
    dataType : "JSON", 
    url : "index.php", 
    success : function(data){   
     for(i=0;i<data.length;i++) 
     { 
      console.log(data[i].1_assigned_accepted); 
     } 
    } 
}) 

sieht Fehler, obwohl ich in meiner Tabelle 1_assigned_accepted als Spaltennamen haben. jQuery berücksichtigt 1_ nicht. Wie löst man das?

+0

versuchen .done statt Erfolg mit –

+0

einen Auszug Ihrer json als auch hinzufügen, möglicherweise Console.Write (Daten), um zu sehen, was Sie bekommen zurück vs was erwartest du zurück? – zerohero

+1

überprüfen Sie, ob Sie richtig darauf zugreifen .. können Sie die Antwort geben –

Antwort

1

Versuchen:

console.log(data[i].["1_assigned_accepted"]); 
+0

Dies wird den Code nicht beheben. –

+0

@RhysBradbury Eigentlich muss er nicht var i = 0 enthalten. Versuchen Sie es selbst: for (i = 0; i <10; i ++) {console.log (i); }, der Rest Ihrer Antwort ist "Tipps", er muss seinen Code nicht reparieren. Meine Antwort funktioniert. – zerohero

+0

'console.log (data [i]. [" 1_assigned_accepted "]);', du brauchst kein extra '.'.Und nur weil es läuft, bedeutet das NICHT das akzeptable JavaScript. Ich bin mir ziemlich sicher, dass seine Anfrage einen HTTP-Fehler zurückgeben würde, weil 'contentType' nicht definiert ist. –

1

Try Klammer Form zu verwenden.

console.log(data[i]['1_assigned_accepted']); 
+0

Beat Sie um 9 Sekunden: P – zerohero

+0

Dies wird nicht den Code beheben. –

-1

Code zu beheben:

$.ajax({ 
    type: "POST", 
    dataType: "JSON", 
    url: "index.php", 
    success: function(data) { 
     console.log(data); //test to see if we get something back 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i]['1_assigned_accepted']); 
     } 
    } 
}); 

Die OP Differenz und ich ist Zuordnung von i=0; ->var i = 0; und Klammern für immer den Wert mit.

Einige Hinweise:

Wenn dabei einen Beitrag, den Sie in der Regel Daten senden, um die data: Option. (denken Sie daran, Json.stringify(input)). Bei der Buchung können Sie mehr Optionen benötigen:

function postJson(url, data, successCallback, errorCallback) { 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     data: JSON.stringify(data), 
     contentType: 'application/json', 
     dataType: 'json', 
     success: successCallback, 
     error: errorCallback 
    }); 
} 

Hinweis gibt es contentType, dataType und data hier verwendet wird. Normalerweise möchten Sie alle diese, wenn Sie eine post tun.

Invoke wie so:

var data = { name: 'Rhys' }; 
postJson(
    'index.php', 
    data, 
    function(responseData) { 
    console.log(responseData); 
    }, 
    function(err) { 
    console.error(err); 
    } 
); 

Ein weiterer Punkt:

Sie gehen davon aus, dass Ihre Antwort Objekt ein Array ist, können Sie mit instanceof testen.

Ich hoffe, das hilft,

Rhys

+0

Warum wurde das abgelehnt? –