2011-01-16 23 views
3

bearbeiten Dies ist die Funktion, wo ich die Antwort vonIterate durch Json Array

$(document).ready(function() 
{ 

    $.ajax({ 
    method: "get", 
    url: 'ctr_seearmylist.php', 
    dataType: 'jsonp', 
    data: 'get=squad', 
    success: processSquads 
    }); 

}); 

bekommen und das ist die PHP-Schnipsel, die die Antwort erstellt:

{..... //iterates throuh a result taken from the database 
    $temp[0]=$id; 
    $temp[1]=$squad_id; 
    $result[]=$temp; 
    } 
    $result=json_encode($result); 
    } 
return $result; 
} 

wenn ich Warnruf (response.constructor); ich

function Array() { 
    [native code] 
} 

Ende bearbeiten

Wie kann ich durch ein JSON-Array iterieren Jquery oder Javascript, oder was auch immer funktioniert?

die Json Antwort i hat diese Form erhalten: [[ "1", "12"], [ "2", "3"], [ "3", "7"]]

ich soll Erwähnen Sie das mit response.length; heute hat keine Auswirkung

function processSquads(response) 
{ 
    alert (response[0][0]); // works and returns 1 
    alert (response[0]); // works and returns 1,12 
    alert (response.length); //doesn't work so I can't iterate 
} 

Sorry für die große Anzahl von Fragen, aber ich bin nur mit Ajax den ersten Schritten und ich stecken.

+0

In Ihrer Frage gibt es keinen JSON. Es ist eine Javscript-Frage, nicht JSON – Javier

+1

Sind Sie sicher, dass die Antwort nicht "{" 0 ": [" 1 "," 12 "]," 1 ": [" 2 "," 3 "]," 2 "ist : ["3", "7"]} "? – user113716

+0

Was bekommen Sie, wenn Sie 'alert (response.constructor);'? – user113716

Antwort

5

Mit JQuery:

var arr = [["1","12"],["2","3"],["3","7"]]; 
jQuery.each(arr, function() { 
    alert(this[0] + " : " + this[1]); 
}); 
//alerts: 1 : 12, etc. 

Dieses das Array iteriert und dann zeigt, was ist in Index 0 und 1.

+0

http://api.jquery.com/jQuery.each –

1

das ist kein json Array, es ist ein Array von Arrays

dies sollte funktionieren: http://jsfiddle.net/w6HUV/2/

var array = [["1", "12"], ["2", "3"], ["3", "7"]]; 

processSquads(array); 

function processSquads(response) { 
    alert(response[0][0]); // 1 
    alert(response[0]); // 1, 12 
    alert(response.length); // 3 

    $(array).each(function(i){ 
     alert(response[i]); // 1,12 - 2,3 - 3,7 
    }); 
} 
+0

Ich bearbeitet den Beitrag mit ein paar mehr Details. Ich sehe es jetzt wie ein Array von Arrays, aber sicherlich kann ich nicht die Länge davon finden. Der genaue Code, den Sie geschrieben haben - und ich weiß, ist richtig, funktioniert einfach nicht – Pillblast

0

Nicht getestet, aber das sollte funktionieren:

function processSquads(response) 
{ 
    for(var list in response) 
    { 
    for(var item in response) 
    { 
     alert(item); 
    } 
    } 
} 
0

nicht sicher, warum jQuery Antworten hier gepostet werden, aber Sie sollten herausfinden, warum die length Eigenschaft funktioniert nicht, wenn es sein sollte. Veröffentlichen des jQuery-Codes aus einer der Antworten mit Haselnuss JavaScript.

var arr = [["1","12"],["2","3"],["3","7"]]; 
for(var i = 0; i < arr.length; i++) { 
    var item = arr[i]; 
    console.log(item[0] + " : " + item[1]); 
} 

Können Sie ein reproduzierbares Beispiel nach, was Sie auf jsfiddle oder einer anderen Seite tun?

+0

Seine getaggte jquery und er fragte auch nach jquery oder javascript –

+0

ja, aber nicht mit 'jQuery' ist nicht das eigentliche Problem. – Anurag