Javascript Plot chart无法使用JSON数据PHP
如何在图表中正确显示来自JSON的数据?因为我尝试的方式不起作用。 要在图形上显示的数据格式必须是[[键,值]],如果我这样放置静态数据,它会工作:Javascript Plot chart无法使用JSON数据PHP,javascript,php,jquery,Javascript,Php,Jquery,如何在图表中正确显示来自JSON的数据?因为我尝试的方式不起作用。 要在图形上显示的数据格式必须是[[键,值]],如果我这样放置静态数据,它会工作: data: [ ["Jan", 1], ["Fev", 2], ["Mar", 3], ["Abr", 4], ["Mai", 5], ["Jun", 6], ["Jul", 6], ["Ago", 6], ["Set", 6], ["Out", 6], ["N
data: [
["Jan", 1],
["Fev", 2],
["Mar", 3],
["Abr", 4],
["Mai", 5],
["Jun", 6],
["Jul", 6],
["Ago", 6],
["Set", 6],
["Out", 6],
["Nov", 6],
["Dez", 6],
]
但是,如果我发送json,它将不起作用:
{"data":{"Jan":"0","Fev":"0","Mar":"1","Abr":"0","Mai":"9","Jun":"4","Jul":"0","Ago":"0","Set":"0","Out":"0","Nov":"0","Dez":"0"}}
这是加载图形的javascript代码:
$.ajax({
url: path + 'admin/chart/get_user_twelve_months',
type: 'GET',
dataType: 'json',
success: function (response) {
console.log(response.data);
var flotDashSales1Data = [{
data: [
response.data
],
color: "#2baab1"
}];
var flotDashSales1 = $.plot('#chart_user_twelve_months', flotDashSales1Data, {
series: {
lines: {
show: true,
lineWidth: 2
},
points: {
show: true
},
shadowSize: 0
},
grid: {
hoverable: true,
clickable: true,
borderColor: 'rgba(0,0,0,0.1)',
borderWidth: 1,
labelMargin: 15,
backgroundColor: 'transparent'
},
yaxis: {
min: 0,
color: 'rgba(0,0,0,0.1)'
},
xaxis: {
mode: 'categories',
color: 'rgba(0,0,0,0)'
},
legend: {
show: false
},
tooltip: true,
tooltipOpts: {
content: '%x: %y',
shifts: {
x: -30,
y: 25
},
defaultTheme: false
}
});
}
});
如果需要,json来自PHP
public function get_user_twelve_months()
{
$current_year = date('Y');
$responseseries = array();
for ($i = 1; $i <= 12; $i++) {
$query = "SELECT count(id_user) AS total FROM user
WHERE YEAR(created_at) = {$current_year} AND MONTH(created_at) = {$i}";
$result = $this->db->query($query)->result()[0];
$total = ($result->total) ? $result->total : "0";
$month_name = get_month_name($i);
$responseseries['data'][$month_name] = $total;
}
$json = json_encode($responseseries);
return $json;
}
公共函数获取用户十二个月()
{
$current_year=日期('Y');
$responseseries=array();
对于($i=1;$i db->query($query)->result()[0];
$total=($result->total)?$result->total:“0”;
$month\u name=get\u month\u name($i);
$responseseries['data'][$month\u name]=$total;
}
$json=json_encode($responseseries);
返回$json;
}
你发送对象
,但如果我理解正确,你需要数组数组
。所以我必须转换json@fen1x?是的。试试这个对象。键(obj)。映射((键)=>[key,Number(obj[key]))
。哇,成功了,谢谢!