J’ai un problème avec JSON et jqPlot.
Script 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' } }] }); });
php de gielda.php:
$pdo = new PDO('mysql:host=localhost;dbname=gielda', 'root', ''); $pdo -> setAtsortingbute(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);
Résultat du fichier php est comme ceci:
[{"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 à partir de la ligne variable:
[["'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"]]
et erreur: uncaught exception: [object Object]
J’ai probablement trouvé la solution. Au début, $ .jqplot doit être à l’intérieur de $ .getJSON – J’ai oublié le code d’invocation asynchrone en JavaScript.
J’ai ajouté inutilement guillemet à data [index] .data
line.push(["'"+data[index].data+"'",data[index].kurs_odn]);
Mais je devais append Number (data [index] .kurs_odn) car il s’agissait d’une chaîne par défaut. Maintenant, cela semble bien fonctionner.