2015-01-13 3 views
-1

Я работаю с Symfony2. Я передаю строку в представление, где я показываю круговую диаграмму, и я пытаюсь передать эту строку в раздел данных.Использовать строку в данных Highcharts

Моя строка: [['EURUSD',7],['GBPUSD',0],['USDEUR',1]]

Я получаю это от моего контроллера симфони так:

<?php {{liste}}; ?> 

, но когда я пытаюсь поставить его в данных, как это график не нагружают правильно

<script> 
... 
    series: [{ type: 'pie',name: '',data: "<?php {{liste}};?>" 
... 
</script> 

но когда я

data: [['EURUSD',7],['GBPUSD',0],['USDEUR',1]] 

он работает!

EDIT: это код моего зрения

<html> 
<head> 
<title>Chart</title> 
<!-- Chargement des librairies: Jquery & highcharts --> 
<script type='text/javascript' src="{{asset('bundles/user/js/jquery.min.js')}}"></script> 
<script type="text/javascript" src="{{asset('bundles/user/js/highcharts.js')}}" ></script> 
</head> 

<body> 
    <p><div align="center">{{liste}}</div></p> 
    <p> 
<!-- Chargement des variables, et paramètres de Highcharts --> 

<script type="text/javascript"> 
    $(function() { 
    var chart; 
    $(document).ready(function() { 

     Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) { 
      return { 
       radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 }, 
       stops: [ 
        [0, color], 
        [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] 
       ] 
      }; 
     }); 

     chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'container', 
       plotBackgroundColor: null, 
       plotBorderWidth: null, 
       plotShadow: false 
      }, 
      title: { 
       text: 'myData' 
      }, 
      tooltip: { 
       pointFormat: '<b>{point.percentage}%</b>', 
       percentageDecimals: 1 
      }, 
      plotOptions: { 
       pie: { 
        allowPointSelect: true, 
        cursor: 'pointer', 
        dataLabels: { 
         enabled: true, 
         color: '#000000', 
         connectorColor: '#000000', 
         formatter: function() { 
          return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.percentage, 1) +' %'; 
         } 
        } 
       } 
      }, 
      series: [{ 
       type: 'pie', 
       name: '', 
       data: "<?php {{liste}};?>" 

      }] 
     }); 
    }); 

});</script> 
<!-- Affichage du graphique --> 
<div id="container" style="width:100%; height:400px;"> 
</div></p> 
</body> 
</html> 
+0

Какой шаблон двигателя вы используете для вашего проекта? Twig? Простой PHP? –

+0

Я использую ветку, я уже проверил содержимое моей переданной строки и ее идентификацию на то, что я передаю, когда она работает. – Hendrixexoperiences

+0

Итак, ответ @Thomas - это хороший способ! –

ответ

1

Проблема в том, что ваша строка уже находится в формате JS, и вы также передаете ее в шаблон как строку. Удалите кавычки, и он должен работать. Кроме того, вы можете использовать фильтр raw, поэтому веточка не сможет избежать ваших символов. Пример:

series: [{ 
    type: 'pie', 
    name: '', 
    data: {{ liste|raw }} 
}] 
+0

Большое спасибо, {{liste | raw}} работали очень быстро !! – Hendrixexoperiences

+0

Рад помочь. Подумайте о принятии ответа :) – lsouza

1

Так как я полагаю, вы используете прут в качестве шаблона двигателя, забыть о PHP, включая скобки.

<script> 
... 
    series: [{ type: 'pie',name: '',data: "{{liste}}" }] 
... 
</script> 
+0

, когда я делаю, что диаграмма вообще не отображается !! – Hendrixexoperiences

+0

Как выглядит ваш последний HTML-код? –

+0

Я отправил свой код – Hendrixexoperiences

1

Проблема с JSon интерпретации значения, поэтому использовать json_encode фильтр

series: [{ 
    type: 'pie', 
    name: '', 
    data: {{ liste|json_encode|raw }} 
}] 
Смежные вопросы