Pipebritop
Pipebritop

Reputation: 135

highchart load the chart but not the JSON data

I'm trying to use highcharts to draw data from php json.

the php works ok but i dont know how to make the json an input.

Speciffically 'm trying to put the data on single Gauge Chart like the one on the example, but i can't configure the script to read the json.

The URL si this: php/KPItonsStock.php

<?php


function getArraySQL(){
$startd = "29964";
$endd = "29968";
$dsn = "prueba";
$connect = odbc_connect( $dsn, '', '' );
$query = "

Select SUM(TON_DESCARGADO) AS data
    from 
        (Select unit,[load],enum_LOAD.[name],SUM(dumptons) as TON_DESCARGADO
        from hist_dumps inner join hist_loclist on hist_dumps.shiftindex = hist_loclist.shiftindex
                                       and hist_dumps.loc = hist_loclist.locid
                inner join enum_LOAD on hist_dumps.[load] = enum_LOAD.[num]
        where hist_dumps.shiftindex between '$startd' and  '$endd'

GROUP BY loc,UNIT,unit#,[load],enum_LOAD.[name])TEMP1
where unit = 'Stockpile'
GROUP BY unit
order BY UNIT";


if(!$rs = odbc_exec($connect, $query)) die();

$rawdata = array();

$i=0;

while($row = odbc_fetch_array($rs))
{
$rawdata[$i] = $row;
$i++;
}
odbc_close( $connect );
return $rawdata;    
};
$data = getArraySQL();
echo json_encode(($data), JSON_NUMERIC_CHECK);

and the result is this:

[{"data":29655.88482666}]

so i need to put information from that URL to the gauge chart.

Im trying with getjson, but I'm missing something, because the chart loads but not the data.

This is the otriginal highchart example

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/gauge-solid/

This is the example with my data

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highcharts Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script src="http://code.highcharts.com/highcharts.js"></script>
        <script src="http://code.highcharts.com/highcharts-more.js"></script>

        <script src="http://code.highcharts.com/modules/solid-gauge.js"></script>
        <style type="text/css">
${demo.css}
        </style>

<script type="text/javascript">

function visitorData (data) {
   $('#container').highcharts({
    chart: {
        type: 'solidgauge'
    },
    title: {
        text: 'Average Visitors'
    },

 pane: {
            center: ['50%', '85%'],
            size: '140%',
            startAngle: -90,
            endAngle: 90,
            background: {
                backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',
                innerRadius: '60%',
                outerRadius: '100%',
                shape: 'arc'
            }
        },

 yAxis: {
            min: 0,
            max: 40000,
            title: {
                text: 'Speed'},
            stops: [
                [0.1, '#55BF3B'], // green
                [0.5, '#DDDF0D'], // yellow
                [0.9, '#DF5353'] // red
            ],
            lineWidth: 0,
            minorTickInterval: null,
            tickPixelInterval: 400,
            tickWidth: 0,
            title: {
                y: -70
            },
            labels: {
                y: 16
            }
        },
    series: data,
  });
}
$(document).ready(function() {
 $.ajax({
    url: 'report2/KPItonsStock.php',
    type: 'GET',
    async: true,
    dataType: "json",
    success: function (data) {
        visitorData(data);
    }
  });
 });
</script>
</head>
    <body>

<div style="width: 600px; height: 400px; margin: 0 auto">
    <div id="container" style="width: 300px; height: 200px; float: left"></div>
</div>


    </body>
</html>

I get the graphic but it doesnt load any data

Upvotes: 0

Views: 312

Answers (1)

duffn
duffn

Reputation: 3760

Data needs to be an array. Make your backend return

[{
    "data": [29655.88482666]
}]

http://jsfiddle.net/nicholasduffy/openzant/3/

Upvotes: 3

Related Questions