| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
最近在学习  前后端数据交互    通过ajax 向后端提交数据,   然后 把数据返回给前端 的 echarts 配置项目; 
 
前后端数据交互 都没有问题,  就是返回来的数据给到 echarts 时  ,  却是undefinded...   
 
 
 
附上 JS代码- var result;   //定义全局变量  用于接收 ajax 返回的数据集
 
  
- function sub(){
 
 -              var Stime = document.getElementById("start_time");
 
 -              var Etime = document.getElementById("end_time");
 
  
-              var obj = document.getElementById("sort");  // 定位select 对象
 
 -              var index = obj.selectedIndex;             // 选中索引
 
 -              var text = obj.options[index].text;        // 选中文本
 
 -              var value = obj.options[index].value;      // 选中值
 
  
-              var data={
 
 -                   data: JSON.stringify({
 
 -                     'x': Stime.value,
 
 -                     'y': Etime.value,
 
 -                     'z': text,
 
 -                 }),
 
  
-              };
 
  
-             $.ajax({
 
 -               url:"/index",
 
 -               type:"get",
 
 -               data:data,
 
 -               dataType: 'json',
 
  
-                success:function(data){
 
 -                       result = data;
 
 -                       //console.log(typeof(result));
 
 -                       //console.log(result);
 
 -               },
 
 -               error:function(e){
 
 -                       alert("error");
 
 -               }
 
 -           })
 
  
-         }
 
  
- // 基于准备好的dom,初始化echarts实例
 
 - var myChart = echarts.init(document.getElementById('main'));
 
  
- // 指定图表的配置项和数据
 
 - var option = {
 
 - title: {
 
 - text: 'ECharts 入门示例'
 
 - },
 
 - tooltip: {},
 
 - legend: {
 
 - data: ['销量']
 
 - },
 
 - xAxis: {
 
 - data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
 
 - },
 
 - yAxis: {},
 
 - series: [
 
 - {
 
 -   name: '销量',
 
 -   type: 'bar',
 
 -   //data: [8, 9, 10, 11, 12, 13],
 
 -   data: result,
 
 - }
 
 - ]
 
 - };
 
 - console.log(option.series)
 
 - // 使用刚指定的配置项和数据显示图表。
 
 - myChart.setOption(option);
 
  复制代码 
你要把下面的代码都移到success里,不然,还没来得及result = data就直接访问result,当然undefined 
- var result //定义全局变量  用于接收 ajax 返回的数据集
 
  
- function sub() {
 
 -   var Stime = document.getElementById('start_time')
 
 -   var Etime = document.getElementById('end_time')
 
  
-   var obj = document.getElementById('sort') // 定位select 对象
 
 -   var index = obj.selectedIndex // 选中索引
 
 -   var text = obj.options[index].text // 选中文本
 
 -   var value = obj.options[index].value // 选中值
 
  
-   var data = {
 
 -     data: JSON.stringify({
 
 -       x: Stime.value,
 
 -       y: Etime.value,
 
 -       z: text
 
 -     })
 
 -   }
 
  
-   $.ajax({
 
 -     url: '/index',
 
 -     type: 'get',
 
 -     data: data,
 
 -     dataType: 'json',
 
  
-     success: function (data) {
 
 -       result = data
 
 -       //console.log(typeof(result));
 
 -       //console.log(result);
 
  
 
-       // 基于准备好的dom,初始化echarts实例
 
 -       var myChart = echarts.init(document.getElementById('main'))
 
  
-       // 指定图表的配置项和数据
 
 -       var option = {
 
 -         title: {
 
 -           text: 'ECharts 入门示例'
 
 -         },
 
 -         tooltip: {},
 
 -         legend: {
 
 -           data: ['销量']
 
 -         },
 
 -         xAxis: {
 
 -           data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
 
 -         },
 
 -         yAxis: {},
 
 -         series: [
 
 -           {
 
 -             name: '销量',
 
 -             type: 'bar',
 
 -             //data: [8, 9, 10, 11, 12, 13],
 
 -             data: result
 
 -           }
 
 -         ]
 
 -       }
 
 -       console.log(option.series)
 
 -       // 使用刚指定的配置项和数据显示图表。
 
 -       myChart.setOption(option)
 
 -     },
 
 -     error: function (e) {
 
 -       alert('error')
 
 -     }
 
 -   })
 
 - }
 
  复制代码 
 
 
 
 |   
- 
 
 
 
- 
 
 
 
 
 
 
 
 |