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

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

引入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数据输出
	}

生成图表


数据库数据


  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值