您的位置:首页 > 编程语言 > PHP开发

TP框架实现echarts动态获取数据

2017-04-04 03:41 363 查看
分页是要点击按钮异步获取数据,实时获取使用定时器就好了。预先拿出一部分你要展示的数据,然后在通后异步获取新的数据覆盖原先的数据。

引入js文件:



html代码

<div id="main" style="min-width:800px;height:400px;"></div>

<script type="text/javascript">
var myChart;
myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
title: {
text: '异步数据加载示例'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
// 加载页面后显示在图表中的X轴信息
data: [<?php foreach($data as $v){; ?>"<?php echo $v['datetime'] ?>",<?php }; ?>]
},
yAxis: {},
series: [{
name: '销量',
// type: 'line',// 折线图
type: 'bar',//柱状图
// 加载页面后显示在图表中的Y轴信息
data: [<?php foreach($data as $v){; ?>"<?php echo $v['datas'] ?>",<?php }; ?>],
itemStyle:{
// 颜色定义
normal:{color:'#7b68ee'}
}
}]
});

// 异步加载后台数据,通过定时器在实现
var i = 0;
function run() {
i++;
$.ajax({
url: "{:U('./Home/Index/data')}",
type: 'POST',
dataType: 'JSON',
data:{page:i},
success:function(json){
if(json.datetime.length != 5){
clearInterval(time);
return;
}
myChart.setOption({
xAxis: {
data: json.datetime
},
series: [{
name: '销量',
data: json.datas
}]
});
}
})
};
var time = setInterval(run,3000);
</script>
php代码(Index控制器)

// 加载页面后输出的数据
public function index(){
$data = $this->model->limit(5)->select();
$this->assign('data',$data);
$this->display();
}

// 异步获取数据
public function data(){
$page = I('post.page',0,intval);

$list = $this->model->limit($page.',5')->select();

// 重组数组
foreach ($list as $key => $value) {
$arr['id'][] = $value['id'];
$arr['datetime'][] = $value['datetime'];
$arr['datas'][] = $value['datas'];
}

die(json_encode($arr)); //转换为json数据输出
}


生成图表



数据库数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: