Echarts ajax动态加载json数据
2015-07-31 11:04
567 查看
后台php写的,给前台准备好json格式数据
public function actionGetOffline(){
$userid = Yii::$app->user->identity->user_id;
$connection = Yii::$app->db;
$command = $connection->createCommand("SELECT proc_phase_id from tb_pro where user_id like '%$userid%';");
$data = $command->queryAll();
// var_dump($data);
// die();
$count = array(0,0,0,0,0,0,0);
foreach ($data as $value) {
foreach ($value as $value1) {
switch ($value1){
case 0:
$count[0]=$count[0]+1;
break;
case 1:
$count[1]=$count[1]+1;
break;
case 3:
$count[2]=$count[2]+1;
break;
case 6:
$count[3]=$count[3]+1;
break;
case 10:
$count[4]=$count[4]+1;
break;
case 12:
$count[5]=$count[5]+1;
break;
case 16:
$count[6]=$count[6]+1;
break;
}
}
}
$res = array('countData'=>$count);
// var_dump($res);
// die();
return json_encode($res);
}
json数据格式如下:
![](https://img-blog.csdn.net/20150731110210826?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
前台Echarts直方图显示,数据通过ajax获得:
最后给Echarts动态加载数据就成功了,简单的小例子:
public function actionGetOffline(){
$userid = Yii::$app->user->identity->user_id;
$connection = Yii::$app->db;
$command = $connection->createCommand("SELECT proc_phase_id from tb_pro where user_id like '%$userid%';");
$data = $command->queryAll();
// var_dump($data);
// die();
$count = array(0,0,0,0,0,0,0);
foreach ($data as $value) {
foreach ($value as $value1) {
switch ($value1){
case 0:
$count[0]=$count[0]+1;
break;
case 1:
$count[1]=$count[1]+1;
break;
case 3:
$count[2]=$count[2]+1;
break;
case 6:
$count[3]=$count[3]+1;
break;
case 10:
$count[4]=$count[4]+1;
break;
case 12:
$count[5]=$count[5]+1;
break;
case 16:
$count[6]=$count[6]+1;
break;
}
}
}
$res = array('countData'=>$count);
// var_dump($res);
// die();
return json_encode($res);
}
json数据格式如下:
前台Echarts直方图显示,数据通过ajax获得:
<head> <meta charset="utf-8"> <title>Charts demo</title> <script src="<?php echo Yii::getAlias('@web')?>/js/jquery.easing.min.js" type="text/javascript"></script> <script src="<?php echo Yii::getAlias('@web')?>/js/echarts.js"></script> </head> <body> <div id="main" style="height:400px;"></div> <script type="text/javascript"> // 路径配置 require.config({ paths: { echarts: '<?php echo Yii::getAlias('@web')?>/js/dist' } }); // 使用 require( [ 'echarts', 'echarts/chart/line', // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表 'echarts/chart/bar' ], function (ec) { var myChart = ec.init(document.getElementById('main')); var option = { tooltip: { show: true }, legend: { data:['不同进度状态的项目数'] }, xAxis : [ { type : 'category', data : ["项目新建","项目关闭","风控议款待商议","异议价格待商议","资料待提交","资料待商议","特批意见待商议"] } ], yAxis : [ { type : 'value' } ], series : [ { "name":"销量", "type":"bar", "data": [] } ] }; $.ajax({ url: "<?=ROOT_URL?>echarts/get-data", dataType : 'json', success: function(res){ // alert(res); // $.each(res,function(i,val){ // // alert(i); // // alert(val); // var counts= val; // alert(counts); // }); if(res){ option.series[0].data = res.countData; myChart.setOption(option); } } }); } ); </script> </body>
最后给Echarts动态加载数据就成功了,简单的小例子:
相关文章推荐
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- Ajax中浏览器和服务器交互详解
- ajax实现点击不同的链接让返回的内容显示在特定div里
- ajax 动态传递jsp等页面使用id辨识传递对象
- AJAX简单应用实例-弹出层
- AJAX初级教程之初识AJAX
- Ajax无刷新分页的性能优化方法
- jquery对ajax的支持介绍
- Ajax 说的比较清楚的一篇文章
- 强烈推荐 - Ajax 技术资源中心
- Ajax PHP简单入门教程代码
- php采用ajax数据提交post与post常见方法总结
- php检查是否是ajax请求的方法
- jQuery+PHP+ajax实现微博加载更多内容列表功能