2015-12-30 6 views
1

в моем json У меня есть три столбца данных для построения графика. Собственно, данные есть на json. но я не мог построить график. std_name, student_count, ab_count - три столбца, которые должны быть привязаны. Теперь я хочу построить его на графике. Я попробовал, но я не мог этого сделать. Может ли у меня помочь?как можно построить график с использованием данных json

function yes_chart() 
{    

    $.ajax({ 
     url:"<? echo base_url();?>Attendance/pre_chart", 
     dataType: 'json',  
     success:function(data) { 

      // alert(data.chart_name); will give 'X1','X2','X3',..' 
      var Day = { 
       labels : [data.chart_name], 
       datasets : [ 
       { 
        fillColor : "rgba(172,194,132,0.4)", 
        strokeColor : "#ACC26D", 
        pointColor : "#fff", 
        pointStrokeColor : "#9DB86D", 
        data : [data.chart_abcount] 
       }, 
       { 
        fillColor : "rgba(151,187,205,0.5)", 
        strokeColor : "rgba(151,187,205,0.8)", 
        highlightFill : "rgba(151,187,205,0.75)", 
        highlightStroke : "rgba(151,187,205,1)", 
        data : [data.chart_count] 
       } 
       ] 
      }        
      var buyers = document.getElementById('lineChart').getContext('2d'); 
      new Chart(buyers).Bar(Day, {responsive : true}); 

     }  
    }); 


} 

<div class="chart tab-pane active" id="barChartDiv"> 
              <canvas id="lineChart" height="200"></canvas> 
             </div> 

контроллер

function pre_chart() 
    { 
    $chart_prev= $this->AM->chart_Disp_prev(); 
    $name=''; 
    $count=''; 
    $ab_count=''; 
    foreach ($chart_prev as $row) 
    { 
     $name=$name."'".$row['std_name']."'," ; 
     $count=$count."'".$row['student_count']."'," ; 
     $ab_count=$ab_count."'".$row['student_count']."'," ; 

    } 
    $name = substr($name,0,strlen($name)-1); 
    $count = substr($count,0,strlen($count)-1); 
    $ab_count = substr($ab_count,0,strlen($ab_count)-1); 
    $out = array(
    'chart_name'=>$name, 
    'chart_count'=>$count, 
    'chart_abcount'=>$ab_count 
    ); 
    echo json_encode($out); 

} 

ответ

1

Если предположить, что JSON в следующем формате

{ 
    chart_data: [ 
     { 
      std_name: ..., 
      student_count: ..., 
      ab_count: ... 
     }, 
     { 
      std_name: ..., 
      student_count: ..., 
      ab_count: ... 
     } 
    ] 
} 

вам нужно построить свой объект данных диаграммы, как так

var labelX = []; 
var bar1 = []; 
var bar2 = [];   
$.ajax({ 
    url:"<? echo base_url();?>Attendance/pre_chart", 
    dataType: 'json',  
    success:function(data) { 

     for (var i = 0; i < data.chart_data.length; i++) { 
      labelX.push(data.chart_data[i]["std_name"]); 
      bar2.push(data.chart_data[i]["student_count"]); 
      bar1.push(data.chart_data[i]["ab_count"]); 
     } 

    } 
}); 

и, наконец, (обратите внимание, что я удалил скобки вокруг объектов, которые мы только что построенных)

var Day = { 
    labels: labelX, 
    datasets: [ 
     { 
      fillColor: "rgba(172,194,132,0.4)", 
      strokeColor: "#ACC26D", 
      pointColor: "#fff", 
      pointStrokeColor: "#9DB86D", 
      data: bar1 
     }, 
     { 
      fillColor: "rgba(151,187,205,0.5)", 
      strokeColor: "rgba(151,187,205,0.8)", 
      highlightFill: "rgba(151,187,205,0.75)", 
      highlightStroke: "rgba(151,187,205,1)", 
      data: bar2 
     } 
    ] 
} 
+0

я попытался ур код, но нет ответа. я отредактировал мой код целиком, может ли вы проверить pls – user5466590

+0

- это ваши данные в формате, который показан выше в моем ответе? – potatopeelings

+0

Я добавил свой контроллер. На этом контроллере я пытаюсь добавить запятые в метку диаграммы и данные – user5466590

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