Jachym
Jachym

Reputation: 485

JSON output for highcharts

So I have finally managed to get a chart generated, but the problem is that for some reason the data from JSON is not displayed - ie I get a blank chart.

In the chart options I simply have:

series : [{
    name: '2000',
    data: [],
}]

The AJAX call looks like this:

$.ajax({
    url : 'data.php',
    datatype : 'json',
    success : function (json) {
        options.series[0].data = json['data'];
        chart = new Highcharts.Chart(options);
    },
});
}

And the data.php output looks like this:

{"data":[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]}

Im becoming desperate as I tried everything and still get just a blank chart with no data.

Upvotes: 0

Views: 113

Answers (2)

Chase
Chase

Reputation: 9362

Its likely that your json values are coming back as strings but highcharts is expecting numbers.

In your data.php try typing your variables before json_encoding them:

array_push($myArray, (float)$value);
return json_encode(myArray);

If your highcharts data looks like:

["-1.4","-1.4","-1.3","-1.3","-1.3","-1.3","-1.3","-1.2","-1.3","-1.2","-1.2","-1.2"]

It wont render, it needs to be straight number:

[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]

Upvotes: 0

Billy
Billy

Reputation: 165

If you're using Internet Explorer, those extra commas will cause you problems.

series : [{
    name: '2000',
    data: []
}]

$.ajax({
    url : 'data.php',
    datatype : 'json',
    success : function (json) {
        options.series[0].data = json['data'];
        chart = new Highcharts.Chart(options);
    }
});
}

Upvotes: 1

Related Questions