【发布时间】:2014-07-21 20:42:52
【问题描述】:
我已经能够使用 mysql 生成结果:
$myArray=array();
$tempArray = array();
// Get all records
while ( $row = $results->fetch_assoc())
{
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray);
$mysqli->close();
?>
然后,我使用以下 Javascript 将其包含在我的页面 index.php 上生成图表。
我不理解/缺少哪些概念/代码来根据我的 ajax json 生成图表?
已编辑 - 解决方案:
生成 json 的最终 PHP 代码:
while ( $row = $results->fetch_assoc())
{
$tempArray[0] = $row['unix_timestamp(auct.end_date)'];
$tempArray[0] *= 1000;
$tempArray[1] = $row['winning_bid'];
array_push($myArray, $tempArray);
}
echo json_encode ($myArray, JSON_NUMERIC_CHECK);
$mysqli->close();
?>
最终的javascript代码:
$('#btn_search').click(function(){
txt_search = $('#txt_search').val();
$.ajax({
url: './php/search.php',
type: 'GET',
data: {search: txt_search},
dataType: 'json',
success: function(rows)
{
chart = new Highcharts.Chart({
chart: {
renderTo: 'chartdiv',
type: 'line',
marginRight: 100,
marginBottom: 50
},
title: {
text: 'Whisky Tracking',
x: -20 //center
},
xAxis: {
text: 'EndDate',
type: 'datetime'
},
yAxis: {
title: {
text: 'Price',
color: '#CC680E'
},
plotLines: [{
value: 0,
width: 20,
color: '#CC680E'
}]
},
series: [{
name: txt_search,
xAxis:0,
data: rows,
dataLabels: {
enabled: true,
formatter: function() {
return '£'+ Highcharts.numberFormat(this.y, 0);
}
}
}],
});
}
});
goToByScroll('tracker');
return false;
});
来自 JSON 的样本数据:
[1306732000000,160],[1306745000000,45],[1306788000000,65],[1306788000000,50],[1306712000000,130],[1306733000000,240],[1306744000000,60],[1306788000000,250],[1306710000000,145]
【问题讨论】:
-
什么不起作用?页面上有chartdiv的div吗?
-
是的 - 抱歉它没有显示任何数据(猜测数组是问题)。图表显示但没有数据
-
您希望它显示什么?目前看起来您在 JSON 中有三个不同的行,那么您打算如何在 y 轴上显示所有三个?
-
我对名称列不感兴趣,而是对 Y 轴上的获胜和 X 轴上的日期感兴趣 - 抱歉,我应该将其包含在
-
创建了一个包含更准确信息的新答案。
标签: javascript php mysql json highcharts