# 数据处理: ### Echarts 中数据需要的是JSON格式; ### index控制器中(indexController.php)负责数据读取,并转成JSON格式: 下面我们新建一个方法: ~~~ <?php namespace app\index\controller; use think\Controller; use app\index\model\User; use think\Db; class IndexController extends Controller { public function index() { return $this->fetch(); } public function data(){ $sql = new User; $sqldata = Db::table('User')-> where('Id','>','0')->select(); for ($i=0; $i < count($sqldata) ; $i++) { $sqldata1[$i]['name']=$sqldata[$i]['name']; $sqldata1[$i]['age']=$sqldata[$i]['age']; } $sqldata_json=json_encode($sqldata1); echo $sqldata_json; } } ?> ~~~ **浏览器中输入http://localhost/test/public/index/index/data, 刷新浏览器:** ![](https://box.kancloud.cn/6224b55f1e09bdff5be9d55b634abdfa_1186x306.jpg) ### 前端index.html 页面接收数据: **这里我们需要用到下面这段代码。** ~~~ var arr1=[],arr2=[]; function arrTest(){ $.ajax({ type:"post", async:false, url:"http://localhost/test/public/index/index/data", data:{}, dataType:"json", success:function(result){ if (result) { for (var i = 0; i < result.length; i++) { arr1.push(result[i].name); arr2.push(result[i].age); } } } }) return arr1,arr2; } arrTest(); ~~~ ### 将这段代码放到Echarts 控件代码中去, ~~~ <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <script src="../public/static/echarts.js"></script> <script src="../public/static/echarts.min.js"></script> <script src="../public/static/jquery-3.2.1.min.js"></script> </head> <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 myChart = echarts.init(document.getElementById('main')); var arr1=[],arr2=[]; function arrTest(){ $.ajax({ type:"post", async:false, url:"http://localhost/test/public/index/index/data", data:{}, dataType:"json", success:function(result){ if (result) { for (var i = 0; i < result.length; i++) { arr1.push(result[i].name); arr2.push(result[i].age); } } } }) return arr1,arr2; } arrTest(); // 指定图表的配置项和数据 option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data:['年龄'] }, xAxis: { type:'category', data:arr1 }, yAxis: { type: 'value' }, series: [{ "name":"age", "type":"bar", "data":arr2 }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html> ~~~ 现在我买你刷新浏览器: ![](https://box.kancloud.cn/2803e20032082f1a63f39485f8c69fd2_743x486.jpg) ### 下面我们试验修改一下数据库中的数据,看看图表是否有变化。 ![](https://box.kancloud.cn/919742aec0ea63317ea33c799a3bbb74_334x229.jpg) ![](https://box.kancloud.cn/bb867212ea232db31d5d20bf936fd898_787x433.jpg) OK!成功!