chartJS或/和php print_r不能一起使用

时间:2019-06-18 14:19:14

标签: php laravel chart.js laravel-blade

因此,我想从数据库中输入条形图的数据,我已经弄清楚了所有内容,但是某些方法不起作用...

这是视图文件的一部分,

    var barChartData = {
      labels  : {{print_r($action_names, true)}} ,
      datasets: [
        {
          label               : 'Electronics',
          fillColor           : 'rgba(2, 24, 222, 1)',
          strokeColor         : 'rgba(2, 24, 222, 1)',
          pointColor          : 'rgba(2, 24, 222, 1)',
          pointStrokeColor    : '#c1c7d1',
          pointHighlightFill  : '#fff',
          pointHighlightStroke: 'rgba(2, 24, 222, 1)',
          data                : {{print_r($action_count,true)}}
        }
      ]
    }

这不起作用,它显示空白图表。

{{print_r($action_names, true)}}的输出为["OBJECT1","OBJECT1","OBJECT3"]

并且{{print_r($action_names, true)}}的输出为[1,2,3]

现在,以完全相同的格式,如果我只是将值以文本形式发布,它可以正常工作,则图表看起来很好,但是当我使用变量时,什么都没有-空白。我需要使用该变量,因为从中获取数据的数据库会经常更改。

4 个答案:

答案 0 :(得分:0)

您不能放置这样的php函数

labels  : {{print_r($action_names, true)}}
...
data: {{print_r($action_count,true)}}

尝试隔离到一个变量中

labels  : { {$action_names} }
...
data: { {$action_count} }

答案 1 :(得分:0)

当您想在脚本或类似的东西中使用数据时,您必须对其进行转义,基本上不要使用{{something}},而要使用{!! something !!}

答案 2 :(得分:0)

使用以下语法从现有的php数组中定义新的javascript数组:

var labelValues = [<?php echo '"'.implode('","', $php_array).'"' ?>];

答案 3 :(得分:0)

您只需使用implode()函数即可打印阵列数据,

 labels : [ 
       {{implode(",", $action_names)}}
    ]

 data : [
      {{implode(",", $action_count)}}
    ]