display data in the chart:
here is the script:
$('#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
});
I am getting data in array form here:
success: function(cats) {
console.log(cats);
$('#container').highcharts().xAxis[0].setCategories(cats);
}
where cats : ["Sept","Oct","Dec"]
but in chart it displays like this:
Here is my PHP (Codeigniter) function:
<?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."]";
}
}
?>