Отображение значений из базы данных (используя mySQL) на графике Flot - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь прочитать значения из БД с помощью php (mySQL), а затем показать их на графике в flot. Я знаю, что значения считываются правильно, и я не получаю никаких ошибок, но график не будет отображаться. Маленькая помощь?

Заранее спасибо.

<?php
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $graphdata[] =  array( (int)$row[0], (int)$row[1] );
}
?>
/////

<div id="placeholder" style="width:600px;height:300px"></div>

<script language="javascript" type="text/javascript">

var dataset1 = <?php echo json_encode($graphdata);?>;
var data = [
            {
                label: "Random Values",
                data: dataset1
            }
        ];
var plotarea = $("#placeholder");

        $.plot( plotarea , data);
</script>

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Содержимое вашей вставки показывает, что строка JSON, которую вы выводите, является недопустимой JSON.

var data = [{ label: "Random Values",data: dataset1}];

будет проверяться, если ее изменить на:

var data = [{"label": "Random Values","data": "dataset1"}]

Это всего лишь пример, но я подозреваю, что Flot ищет немного другой формат, поэтому вам нужно будет точно проверить, что они ищут, по их документации.Сейчас я выполняю то же упражнение с FusionCharts, поэтому чувствую вашу боль. jsonlint.com ваш друг, выведите свой JSON и проверяйте его часто.Я также рекомендовал бы, чтобы изначально все заработало, начните с строки JSON (даже той, которую вы копируете из их примеров), которую вы вставили прямо в код.Сначала работайте с диаграммой, а затем работайте над тем, чтобы заставить ваш PHP дублировать пример строки JSON отдельно.

0 голосов
/ 21 июля 2011

Попробуйте отложить создание графика до загрузки DOM:

jQuery(document).ready(function ($){
    var plotarea = $("#placeholder");
    $.plot( plotarea , data);
});
...