2014-11-26 3 views
0

У меня есть php-файл, и я подключаю его к MySQL и извлекаю некоторые значения. Я хочу использовать эти значения в файле .tpl для отображения графиков, для которых я использую Highcharts. Я как-то не могу передать значения php на график, который является javascript. Пожалуйста, взгляните на код и скажите мне, где я буду ошибаться.Передача динамических значений php для графиков Highchart

Мой PHP код:

$sqlStr = "select * from users where user_id=".$_SESSION['user_id']; 

     $sqlQuery = mysql_query($sqlStr) or die(mysql_error()."<hr>".$sqlStr); 

     if (mysql_num_rows($sqlQuery)) { 

      $rowMyReport = mysql_fetch_assoc($sqlQuery); 

      $smarty->assign("value1",$rowMyReport['value1']); 
      $smarty->assign("value2",$rowMyReport['value2']); 
      $smarty->assign("value3",$rowMyReport['value3']); 
      $smarty->assign("value4",$rowMyReport['value4']); 
      } 

Теперь я хочу, чтобы использовать эти значения для Highcharts иметь график на моем сайте. Так что я попытался это:

$(function() { 
$('#graph').highcharts({ 
    chart: { 
     plotBackgroundColor: null, 
     plotBorderWidth: 1,//null, 
     plotShadow: false 
    }, 
    title: { 
     text: 'Browser market shares at a specific website, 2014' 
    }, 
    tooltip: { 
     pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' 
    }, 
    plotOptions: { 
     pie: { 
      allowPointSelect: true, 
      cursor: 'pointer', 
      dataLabels: { 
       enabled: true, 
       format: '<b>{point.name}</b>: {point.percentage:.1f} %', 
       style: { 
        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' 
       } 
      } 
     } 
    }, 
    series: [{ 
     type: 'pie', 
     name: 'Some-name', 
     data: [ 
      ['title1', <?php echo $value1; ?>], 
      ['title2',  <?php echo $value2; ?>], 
      ['title3', <?php echo $value3; ?>], 
      ['title4', <?php echo $value4; ?>] 
     ] 
    }] 
}); 
}); 

Я называю этот граф в .tpl файл как таковой:

<div id="graph" style="min-width: 200px; height: 200px; margin: 0 auto"></div> 

Давая жестко закодированные значения будет отображен на графике, но когда я использую динамические значения (PHP значения) не отображается. Любая помощь была бы оценена ...

+0

Возможно, проблема заключается в том, что ваши значения являются строкой, а не цифрами. Поэтому используйте json_encode(). Для получения дополнительной информации посетите наш [веб-сайт] (http://www.highcharts.com/docs/working-with-data/preprocessing-data-from-a-database) –

ответ

2

использовать json_encode для данных, в вашем контроллере перед передачей.

+0

Не могли бы вы помочь мне с json_encode, указав пример от моей проблемы. Как в том, как мне получить доступ к отдельным значениям, если они мне нужны ... – Roland

+1

$ smarty-> assign ("value1", json_encode ($ rowMyReport ['value1'])); когда вы используете highchart, вы должны json_encode (your_data) и передать его. – h3dgh

+0

Итак, я изменил его в php и в .tpl, я использовал . Тем не менее диаграмма не видна. – Roland

Смежные вопросы