2010-08-21 125 views
4

我遇到了JSON和jqPlot的问题。将Json数据加载到jqPlot

jQuery脚本:

$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"}] 

从可变线CONSOLE.LOG:

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

[["'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"]] 

和错误:uncaught exception: [object Object]

回答

2

我大概找到了解决方案。 起初$ .jqplot必须位于$ .getJSON中 - 我忘记了JavaScript中的异步调用代码。

我不必要添加引号数据[指数]。数据

line.push(["'"+data[index].data+"'",data[index].kurs_odn]); 

但我不得不加号(数据[指数] .kurs_odn)becouse这是字符串默认。 现在看来工作正常。