2016-01-01 33 views
0

顯示數據圖表中:setCategories不打印的數據中預期的格式在highchart

這裏是腳本:

$('#container').highcharts({ 
      chart: { 
       type: 'column' 
      }, 
      title: { 
       text: 'Monthly Users For The Year ' 
      }, 
      categories: 
       $.ajax({ 
       url: "http://localhost/user/getxAxix", 
       data: {year:year}, 
       type: "GET", 
       success: function(cats) { 
        console.log(cats); 
        $('#container').highcharts().xAxis[0].setCategories(cats,true,true); 
       } 
       }), 
       crosshair: true, 
      yAxis: { 
       min: 0, 
       title: { 
       text: 'User' 
       } 
      }, 
      series: chartData 
      }); 

我以陣列形式及彼數據:

success: function(cats) { 
console.log(cats); 
$('#container').highcharts().xAxis[0].setCategories(cats); 
} 

其中["Sept","Oct","Dec"]

但是在圖表它顯示是這樣的:enter image description here

這是我的PHP(笨)功能:

<?php 
function getxAxix($year) {   
     $q = $this->db->query("SELECT (CASE WHEN temp.xAxis = '1' THEN 'Jan' WHEN temp.xAxis = '2' THEN 'Feb' WHEN temp.xAxis = '3' THEN 'Mar' WHEN temp.xAxis = '4' THEN 'Apr' WHEN temp.xAxis = '5' THEN 'May' WHEN temp.xAxis = '6' THEN 'Jun' WHEN temp.xAxis = '7' THEN 'Jul' WHEN temp.xAxis = '8' THEN 'Aug' WHEN temp.xAxis = '9' THEN 'Sept' WHEN temp.xAxis = '10' THEN 'Oct' WHEN temp.xAxis = '11' THEN 'Nov' WHEN temp.xAxis = '12' THEN 'Dec' END) as xAxis FROM (SELECT 
      MONTH(date_created) as xAxis 
      FROM user 
      WHERE YEAR(date_created) = $year 
      GROUP BY MONTH(date_created) 
      ORDER BY MONTH(date_created)) AS temp"); 
     if($q->num_rows() > 0) { 
      $d = $q->result_array(); 
      foreach ($d as $value) { 
       $xAxis[] = $value['xAxis']; 
      } 
      $implodeed = implode(',', $xAxis); 
      $finalXaxis = '"'. implode('","', explode(',', $implodeed)) .'"'; 
      echo "[".$finalXaxis."]"; 
     } 
    } 
?> 
+0

它應該是這樣的'$( '#集裝箱')highcharts()x軸[0] .setCategories(貓,真實的,真正的); ' – pedram

+0

同樣的情況@rajeshpanchal不能正常工作 –

+0

可以請你發佈整個html或jsfiddle嗎? – pedram

回答

0

我解決它通過添加eachdataType:'json',,也進行了更改PHP函數。 。

$.ajax({ 
    url: "http://localhost/user/getxAxis", 
    data: {year:year}, 
    type: "GET", 
    dataType:'json', 
    success: function(response) { 
      var categories = []; 
      $.each(response, function() { 
       categories.push(this.xAxis); 
      }); 
      $('#container').highcharts().xAxis[0].setCategories(categories); 
      } 
}), 

PHP函數:

<?php 
function getxAxix($year) {   
     $q = $this->db->query("SELECT (CASE WHEN temp.xAxis = '1' THEN 'Jan' WHEN temp.xAxis = '2' THEN 'Feb' WHEN temp.xAxis = '3' THEN 'Mar' WHEN temp.xAxis = '4' THEN 'Apr' WHEN temp.xAxis = '5' THEN 'May' WHEN temp.xAxis = '6' THEN 'Jun' WHEN temp.xAxis = '7' THEN 'Jul' WHEN temp.xAxis = '8' THEN 'Aug' WHEN temp.xAxis = '9' THEN 'Sept' WHEN temp.xAxis = '10' THEN 'Oct' WHEN temp.xAxis = '11' THEN 'Nov' WHEN temp.xAxis = '12' THEN 'Dec' END) as xAxis FROM (SELECT 
      MONTH(date_created) as xAxis 
      FROM user 
      WHERE YEAR(date_created) = $year 
      GROUP BY MONTH(date_created) 
      ORDER BY MONTH(date_created)) AS temp"); 
     if($q->num_rows() > 0) { 
      $d = $q->result_array(); 
      echo json_encode($d); 
     } 
    } 
?>