JSON、PHP、FLOT和jQUERY

JSON、PHP、FLOT和jQUERY,php,javascript,jquery,json,flot,Php,Javascript,Jquery,Json,Flot,基本上,我正在编写一个报告脚本,其中它从数据库中提取数据,并希望使用JSON、jQuery和FLOT将其解析为一个图形 我已经将数据输入到JSON中,图形生成了一半,但它没有填充正确的数据(或任何相关数据) 以下是jQuery代码: $(document).ready(function(){ var options = { legend: { show: false, margin: 10, backgroundOpacity: 0.5

基本上,我正在编写一个报告脚本,其中它从数据库中提取数据,并希望使用JSON、jQuery和FLOT将其解析为一个图形

我已经将数据输入到JSON中,图形生成了一半,但它没有填充正确的数据(或任何相关数据)

以下是jQuery代码:

$(document).ready(function(){
var options = {
    legend: {
        show: false,
        margin: 10,
        backgroundOpacity: 0.5
    },
    points: {
        show: true,
        radius: 3
    },
    lines: {
        show: true
    }
};  

var plotarea = $("#plotarea");
plotarea.css("height", "250px");
plotarea.css("width", "500px");

$('button[name="getJSON"]').click(function(){
    $.ajax({
        url: 'reports.php?r=1', 
        dataType: 'json', 
        success: function(data){
            $.plot( plotarea , data, options );
        }
    });
});
}))

以下是据我所知正常工作的PHP代码:

$r = addslashes($_GET['r']);

            if(!$r){
                die('Incorrect Value for \'r\' was set');
            }                      

            $sqlQuery = mysql_query(sprintf(
                "SELECT DATE_FORMAT(FROM_UNIXTIME(`date_registration`), '%%d-%%m-%%Y') AS `date`, COUNT(1) AS `count`
                FROM `crowdcube_users`
                WHERE `date_registration` BETWEEN %d AND %d
                GROUP BY `date`",
                $startDate,
                $endDate
            ));



            while($row = mysql_fetch_assoc($sqlQuery)){                                   
                $newData[] = array(
                    'label' => $row['date'],
                    'data'  => array(
                                    $row['date'] => $row['count']
                                )
                    );
            }

            //Encode the array into JSON data
            echo json_encode($newData);
以下是JSON数组:

[{"label":"25-07-2011","data":{"25-07-2011":"27"}},{"label":"26-07-2011","data":{"26-07-2011":"27"}},{"label":"27-07-2011","data":{"27-07-2011":"9"}},{"label":"28-07-2011","data":{"28-07-2011":"17"}},{"label":"29-07-2011","data":{"29-07-2011":"18"}},{"label":"30-07-2011","data":{"30-07-2011":"13"}},{"label":"31-07-2011","data":{"31-07-2011":"3"}}]
最后,这是我生成图表时得到的结果:

我做错了什么?任何帮助都将不胜感激

提前谢谢

右起:检查您的数据类型。对于JSON,
“27”
27
不同

问:当我使用JSON数据作为源时,Flot不工作

答:事实上,弗洛特喜欢JSON数据,你只是把格式弄错了。 仔细检查输入的不是数字而是字符串, 比如[[“0”、“-2.13”]、[“5”、“4.3”]。这是最常见的错误,而且 错误可能不会立即显示,因为Javascript可以执行某些操作 自动转换

而且,您的数据结构与Flot所期望的完全不同。具体而言,数据序列应该是数据点列表,每个数据点都是坐标列表:

{data:[[0,-2.13],[5,4.3],.....]}

对于基于时间的数据,您必须使用Javascript时间戳,即从历元开始的毫秒数。在大多数情况下,它只是Unix时间戳乘以1000

我刚刚添加了一个typecast,因此它现在是(int)$row['count'],并且仍然是相同的:/