在折线图(谷歌图表)laravel(php)中显示数据库中的数据

时间:2015-07-24 08:44:58

标签: javascript php html mysql charts

我试图使用谷歌图表在laravel中制作折线图并从数据库mysql获取数据。

问题: 我如何在data.addRows中传递变量$ bmi和$ visits?这样我就可以用折线图显示数据。

这里是我的代码(php):

 public function graphBmi($childName){
   $name = DB::table('tm_child')->select('Child_Name')->distinct()
       ->where('Child_ID', 'LIKE', '%' . $childName . '%')->first();

   $visit = DB::table('tm_Child')
       ->join('tr_visit', 'tm_child.Child_ID', '=', 'tr_visit.Child_ID')
       ->where('tr_visit.Child_ID', 'LIKE', '%' . $childName . '%')
       ->select('Visit_Date', 'tr_visit.Child_ID', 'Bmi_anak')
       ->distinct()->get();


   if (!is_null($visit)) {
       $visits = [];
       $bmi = [];
       $data[0] = array('day','counts');
       foreach ($visit as $tgl) {
           array_push($visits, $tgl->Visit_Date);
           array_push($bmi, $tgl->Bmi_anak);
       }

   }

       //  return $visit;
       echo json_encode($bmi);    //number
       echo json_encode($visits); //date visit
       return View::make('ProfilAnak.BmiAnak.seeBmi')->with('visits',$visits)->with('bmi',$bmi);
}

此处显示图表的脚本

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart_div"></div>
<script>
    google.load('visualization', '1', {packages: ['corechart', 'line']});
    google.setOnLoadCallback(drawBackgroundColor);

    function drawBackgroundColor() {


        var data = new google.visualization.DataTable();

        data.addColumn('date', 'Visit');
        data.addColumn('number', 'X');

        data.addRows([
             [new Date{{$visits}},{{$bmi}}]
        ]);

        var options = {
            hAxis: {
                title: 'Time'
            },
            vAxis: {
                title: 'Popularity'
            },
            backgroundColor: '#f1f8e9'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    }
</script>

0 个答案:

没有答案