user849137
user849137

Reputation:

Issues trying to fetch data from PHP JSON multidimensional array with JQuery

I have a multidimensional array which, when echoed in PHP, looks like this:

{
    "11-12-20":{"visits":0,"pageviews":0}
    "11-12-21":{"visits":0,"pageviews":0}
    "11-12-22":{"visits":0,"pageviews":0}
}// etc.

As you can see, the date is the key to the arrays inside the multidimensional array. So I can select an array from the multidimensional array using the date as the key:

$my_multi_array['12-12-12'];

JSON:

$.getJSON('file.php', function(data){
    var test='11-12-29';
    document.write(data.test);
});

When I test that in a browser, nothing is printed on the screen. Also, how would I go about looping through the whole of that array in jQuery and use the data inside that array's array.

I've been at this for hours now, and am pretty frustrated.

Upvotes: 1

Views: 687

Answers (2)

Abbas
Abbas

Reputation: 6886

The PHP output that you have echoed is not an array, it's a JSON object without comma separators, which means it's not correctly formed.

If you correct the syntax, you can access the objects in data through the index notation ([]), not the dot operator (.). So instead of accessing data like data.test, you should try data[test].

Assuming you name your JSON object myJson, here's how you can iterate thought it:

var myJson = {
    "11-12-20":{"visits":0,"pageviews":0},
    "11-12-21":{"visits":0,"pageviews":0},
    "11-12-22":{"visits":0,"pageviews":0}
}

for (var item in myJson)
{
    alert(myJson[item].visits + ", " + myJson[item].pageviews);
}

Upvotes: 1

Bergi
Bergi

Reputation: 665536

Use data[test]. Your data.test is equal to data["test"], and there is no "test" property in your object.

Upvotes: 1

Related Questions