Reputation: 1221
Edit This is the function where I get the response from
$(document).ready(function()
{
$.ajax({
method: "get",
url: 'ctr_seearmylist.php',
dataType: 'jsonp',
data: 'get=squad',
success: processSquads
});
});
and this is the php snippet that creates the response:
{..... //iterates throuh a result taken from the database
$temp[0]=$id;
$temp[1]=$squad_id;
$result[]=$temp;
}
$result=json_encode($result);
}
return $result;
}
if i call alert(response.constructor); I get
function Array() {
[native code]
}
End Edit
How do I iterate through a json array using jquery or javascript, or whatever works?
the json response i get has this form: [["1","12"],["2","3"],["3","7"]]
I should mention that using response.length; has no effect
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 for the large number of questions today, but I'm just getting started with Ajax and I get stuck.
Upvotes: 4
Views: 11063
Reputation: 141859
Not sure why jQuery answers are posted here, but you should find out why the length
property is not working when it should. Posting the jQuery code from one of the answers with hazelnut 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]);
}
Can you post an reproducible example of what you're doing on jsfiddle or some other site?
Upvotes: 0
Reputation: 63502
that's not a json array, it's an array of arrays
this should work fine: 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
});
}
Upvotes: 1
Reputation: 3589
Untested but this should work:
function processSquads(response)
{
for(var list in response)
{
for(var item in response)
{
alert(item);
}
}
}
Upvotes: 0
Reputation: 57469
With Jquery:
var arr = [["1","12"],["2","3"],["3","7"]];
jQuery.each(arr, function() {
alert(this[0] + " : " + this[1]);
});
//alerts: 1 : 12, etc.
This iterates the array and then shows what is in index 0 and 1.
Upvotes: 5