highcharts和dwr实现从数据库拿数据绘图

<script src='<%=request.getContextPath()%>/dwr/interface/riskMonitorDao.js' type="text/javascript"></script>

最近接触了一下highcharts和dwr,所以记一下,俗话说好记性不如烂博客么~下面会附上我在学习过程中,找到的大神的文章。


dwr学习材料:http://blog.csdn.net/chenghui0317/article/details/9842873

后台java类与jsp文件通过一个dwr的配置文件进行关联

(1)后台新建一个类用来获得所要的信息,这里就用项目里的代码做例子:

public class RiskMonitorDwrFunction {
	
	public List<TblOffdRule> getRuleOffdInfo(){
		return RiskMonitorService.getInstance().getOffdRuleList(null, null);
	}
}
(2)在dwr.xml中配置相关信息

<create creator="new" javascript="riskMonitorDao">
		<param name="class" value="com.huateng.erm.riskMoitor.service.RiskMonitorDwrFunction" />
</create>
<convert converter="bean" match="com.huateng.erm.bean.TblOffdRule"></convert> 
在create标签内的javascript=“riskMonitorDao”是说明dwr自动生成的js文件的文件名。param则是对应后台java类

在convert标签内写明要传递回去的数据的bean。例如之前函数返回TblOffdRule的LIst,这里就要包含TblOffdRule的位置

(3)在jsp文件中导入自动生成的js文件

<script src='<%=request.getContextPath()%>/dwr/interface/riskMonitorDao.js' type="text/javascript"></script>
在js调用riskMonitorDao的方法就可以了

riskMonitorDao.getRuleOffdInfo(function(data){
	do somethting......
	});
data属性即为获得的list链表,通过类似[data[i].offdRuleId方法就能获取相应的属性值


小结:dwr其实就是通过一个配置文件来关联前端和后端的。当需要传递参数到后台时,在js中调用函数时可以这样:


dao.getField(A,B,function(data){

       do somethting......

});

其中,A,B分别对应后台函数中的第一个,第二个参数

恩,说完dwr就要说highcharts了。highcharts学习的话,有个highcharts中文网就很棒(另外highcharts绘制图标太酷炫了!)

highcharts学习材料:http://www.hcharts.cn/index.php(美中不足的是他的中文教程还没弄完全!!!不过在线演示已经很棒了!)

(1)首先,来来来,画个饼图
var mychart={
        
        chart: {
            renderTo: 'container',
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        },
        credits:{
            enabled:false
        },
        title: {
            text: '规则触发情况图表'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    color: '#000000',
                    connectorColor: '#000000',
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %'
                }
            }
        },
        series: [{
            type: 'pie',
            name: 'Browser share'
        }]
    };
(2)然后通过一个函数来填充必要的数据就OK了
function showChart(){
    riskMonitorDao.getRuleOffdInfo(function(data){
        var mydata=[];
        for(var i=0;i<data.length;i++){
          mydata.push([data[i].offdRuleId,data[i].ruleIdCount]);
        }
        
        mychart.series[0].data = mydata;

        new Highcharts.Chart(mychart);
    });
}
(3)最后在看情况调用他吧,我是在文档加载的时候就让他显示的
$(document).ready(function(){
    showChart();
});

小结:中文网上有各种各样的图形,想换图形的话可以通过参看上面的代码。细节的话,可以看他的api文档。其实highcharts的信息都是通过json格式保存的,比如我想改变横轴可以这样做,可以用自己的数据初始化他的categories属性。例如mychart.xAxis.categories=xAxisdata;(xAxisdata为后台得到的数据)。(当然饼图是木有横轴属性的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤从数据库获取数据实现异步刷新显示饼状图: 1. 首先,确保你已经安装了FastAdmin和相关依赖。可以使用Composer来安装FastAdmin和必要的扩展。 2. 创建一个数据库表,用于存储饼状图数据。表结构可以包含字段如下: - id:饼状图数据的唯一标识 - label:数据项的标签 - value:数据项的值 3. 在FastAdmin中创建一个控制器,用于处理异步请求并获取数据库中的饼状图数据。你可以在控制器中使用Model来查询数据库获取数据。例如,使用ThinkPHP框架的话,可以这样写: ```php use think\Controller; use app\admin\model\PieData; class PieController extends Controller { public function getData() { $data = PieData::select(); return json($data); } } ``` 4. 在前端页面中使用Ajax来发送异步请求并获取饼状图数据。你可以在页面中使用JavaScript来实现这个功能。例如,使用jQuery的话,可以这样写: ```javascript $.ajax({ url: '/admin/pie/getData', type: 'GET', dataType: 'json', success: function(data) { // 在这里使用返回的数据来绘制饼状图 // 例如使用Chart.js等图表库 } }); ``` 5. 在页面中使用图表库来绘制饼状图。你可以选择使用一些流行的JavaScript图表库,如Chart.js、Highcharts等。根据你选择的库,按照其文档提供的方法来绘制饼状图,并将异步获取到的数据传递给图表库进行展示。 这样,你就可以通过以上步骤从数据库获取数据实现异步刷新显示饼状图了。记得在控制器中处理数据查询和前端页面中处理异步请求和绘制图表的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值