2010-08-21 54 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這是字符串默認。 現在看來工作正常。