显示高图表并使用 php 从 mysql 数据库中获取图表的数据
Displaying highchart and using php to get data for the chart from mysql database
当我从数据库中读取数据并使用它来显示图表时,Highchart没有显示任何内容。
$.post('ajax/like_get_option1.php' , function(data){op1= data;}); //php file is called which connects to database and echo out the result
$.post('ajax/like_get_option2.php' , function(data){op2= data;});
$.post('ajax/like_get_option3.php' , function(data){op3= data;});
$.post('ajax/like_get_option4.php' , function(data){op4= data;});
$.post('ajax/like_get_option5.php' , function(data){op5= data;});
$.post('ajax/like_get_option6.php' , function(data){op6= data;});
var arr = [op1,op2,op3,op4,op5,op6]; //making array of all the values to pass in highchart
var options = {
chart:{
type: 'column',
margin: 150,
options3d:{
enabled: true,
alpha: 10,
beta: 25,
depth: 70,
viewDistance: 25
}
},
title:{
text: 'Demo'
},
subtitle:{
text:'Test'
},
plotOptions:{
column:{
depth: 25
}
},
xAxis: {
categories:['x','y','z','a','b','c']
},
yAxis: {
title: {
text: null
}
},
series: [{
name: 'Poll',
data: arr
}]
};
var y = $('#container');
var tween4 =y.highcharts(options); // passing values to highchart
我只需要访问我的数据库来获取值并将其传递给HighChart。任何建议将不胜感激??
简单的图表图,其中包含来自MySQL数据库的数据
$(function () {
$('#container').highcharts({
chart: {
type: 'line'
},
title: {
text: 'Monthly Average Temperature'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
<?php
$sql = 'SELECT count(*) as counter FROM example limit 12';
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
echo 'series: [{
name: 'Example',
data: [
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo $row['counter'].",";
}]
}]';
?>
});
});
你可以在 PHP 中使用 implode 函数用逗号拆分数组并转换为字符串
series: [{
name: 'Poll',
data: [<?php echo implode(",",$arr); ?>]
}]
};
结果
data : [op1,op2,op3....]
代码的一般问题是在调用所有 ajax 之前初始化图表。你应该在回调中使用$.when() then()
jquery和init chart。
$.post('ajax/like_get_option1.php' , function(data){
op1= parseInt(data);
$.post('ajax/like_get_option2.php' , function(data){op2= parseInt(data);
$.post('ajax/like_get_option3.php' , function(data){op3= parseInt(data);
$.post('ajax/like_get_option4.php' , function(data){op4=parseInt(data);
$.post('ajax/like_get_option5.php' , function(data){op5= parseInt(data);
$.post('ajax/like_get_option6.php' , function(data){op6= parseInt(data);
high_chart() ;
})
})
})
})
})
});
我使用简单的循环在另一个内部执行 ajax 调用,然后最终调用 highchart,它起作用了。此外,我将数据直接从 php 文件传递到即将出现的字符串的高图表。所以我使用 parseInt 来转换 int 中的值,经过一些磨难后它起作用了。
相关文章:
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么