0

サーバーからjsonでデコードされたデータを取得し、 $.parseJSON を使用してデコードしています。続いて、それを高いチャートのシリーズに割り当てます。すべて問題ないようです。コンソール エラーはありませんが、グラフは表示されません。

ここにコードがあります

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="description" content="">
    <meta name="author" content="">
    <title></title>
    <script src="../assets/jquery/js/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script type="text/javascript">
        parent.$('iframe').height('256');
    </script>
</head>
<body style="overflow:hidden">
<div id="container" style="width:100%; height:400px;"></div>
</div>
<script>

$(function() {
series = [];

series = generateData();

function generateData()
{
   $.ajax({
    url: 'http://exact.offergrid.com/totalVisits.php',
    success: function(data) 
    {
          alert(data);
          ps = [];
          var obj = $.parseJSON(data);
          var len = obj.length;
          //alert(obj.length);
          for (var i = 0; i < len; i++) {
            //alert(obj[i].date+obj[i].count);

            var date = obj[i].date;
            var count = obj[i].count;
            ps[i] = {
                x: date,
                y: count 
            };
            series.push({
                    data: []
            });
            series[i].data.push(ps[i]);
        }
    },      
  });
            return series;
}

$('#container').highcharts({
        chart: {
            renderTo: 'container',
            type: 'column'
        },
        title: {
            text: 'Fruit Consumption'
        },
        xAxis: {

        },
        yAxis: {
            title: {
                text: 'Fruit eaten'
            }
        },
        series: series
});


});
</script>
</body>
</html>
4

2 に答える 2

0

おそらくjsonは文字列であり、数値がないため、phpが返すもの。parseFloat(obj[i].count) を使用する必要があります。あなたのデータはタイムスタンプですか?

于 2013-10-31T10:56:35.560 に答える
0

チャート データを生成するための php (サーバー側コード) コードでは、すべて値を integer から float に変換するか 、実際のデータをチャート データ配列にプッシュする前に次のようにし$value = (float)$value;ます。$value = (int)$value;

私もあなたと同じ問題に直面しましたが、これを行うとうまくいきました!

于 2013-10-30T13:05:36.817 に答える