Iterate through Json array
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开发者_C百科
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.
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.
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
});
}
Untested but this should work:
function processSquads(response)
{
for(var list in response)
{
for(var item in response)
{
alert(item);
}
}
}
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?
精彩评论