将Json数据加载到jqPlot中

4

我有一个关于JSON和jqPlot的问题。

jQuery脚本:

var line = [ ];
$(function(){
    $.getJSON('bin/gielda.php', function(data) {
        $.each(data, function (index, value) {
            line.push(["'"+data[index].data+"'",data[index].kurs_odn]);         
        }); 
        console.log(line);
    });
    $.jqplot('chartdiv', [line], {
        title :' Giełda',
        axes : {
            xaxis : {
                renderer : $.jqplot.DateAxisRenderer
            }
        },
        series : [{
            lineWidth : 4,
            markerOptions : {
                style : 'square'
            }
        }]
    });
});

来自gielda.php的php代码:

$pdo = new PDO('mysql:host=localhost;dbname=gielda', 'root', '');
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $pdo -> prepare("SELECT  data,kurs_odn FROM template WHERE nazwa=?");
$sql -> execute(array("ASSECOPOL"));
$gielda = $sql->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($gielda);

php文件返回的结果如下:

[{"data":"2010-08-19","kurs_odn":"55.75"},{"data":"2010-08-19","kurs_odn":"55.75"},{"data":"2010-08-19","kurs_odn":"55.75"},{"data":"2010-08-20","kurs_odn":"56.2"},{"data":"2010-08-20","kurs_odn":"56.2"},{"data":"2010-08-20","kurs_odn":"56.2"}]

变量行的控制台日志:

[["'2010-08-19'", "55.75"], ["'2010-08-19'", "55.75"], ["'2010-08-19'", "55.75"], ["'2010-08-20'", "56.2"], ["'2010-08-20'", "56.2"], ["'2010-08-20'", "56.2"]]

错误信息: 未捕获的异常:[object Object]

1个回答

2
我可能找到了解决方案。 首先,$.jqplot必须在$.getJSON内部 - 我忘记了JavaScript中的异步调用代码。 我不必要地向data[index].data添加引号。
line.push(["'"+data[index].data+"'",data[index].kurs_odn]); 

但是我必须添加Number(data[index].kurs_odn),因为默认情况下它是字符串。现在看起来运行良好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接