起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5943|回复: 22

[结贴] 在wex5中怎么用js查询数据库中的数据,并遍历出来?

[复制链接]

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
发表于 2016-12-28 09:41:05 | 显示全部楼层 |阅读模式
在wex5中怎么用js查询数据库中的数据,并遍历出来?

这是数据库表结构

这是数据库表结构

怎么用js把数据库中的数据读出来并以json的格式遍历出来?

怎么用js把数据库中的数据读出来并以json的格式遍历出来?

异步加载数据

异步加载数据

想要展示的效果

想要展示的效果
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2016-12-29 09:43:42 | 显示全部楼层

name显示出来了,但是number为什么不显示呢,是哪里错误了?

本帖最后由 爱喝牛奶的面包 于 2016-12-29 10:16 编辑
  1. define(function(require){
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         var util = require("$UI/system/components/justep/common/common");
  5.         require("$UI/demo/takeoutAdmin/dist/echarts-all");
  6.         var Model = function(){
  7.             this.isVisible = util.flag;
  8.                 this.callParent();
  9.         };

  10.         Model.prototype.modelLoad = function(event){            
  11.         var names = [];
  12.         var numbers = [];
  13.         this.comp("mainData").each(function(param){
  14.              names.push(param.row.val('fName'));             //获取数据库fName字段遍历出来;
  15.              numbers.push(param.row.val('number'));          //获取数据库的number字段遍历出来;
  16.         });
  17.         function mainData(cb){
  18.         //  alert(JSON.stringify(numbers));
  19.         //  alert(JSON.stringify(names));
  20.                  setTimeout(function(){         
  21.                 // var json = {};
  22.                  /*
  23.                  for(var i=0;i<names.length;i++){
  24.                      json[i]=names[i];
  25.                  }
  26.                  for(var y=0;y<numbers.length;y++){
  27.                      json[y]=numbers[y];
  28.                  }
  29.                  */
  30.                       cb({
  31.                          categories : names,
  32.                          data : numbers
  33.                       });
  34.                  });
  35.         }
  36.         
  37.         option = {                                                        // 指定图表的配置项和数据
  38.               title:{
  39.                     text : '异步数据加载'
  40.               },
  41.               tooltip : {},                     //提示框,鼠标悬浮交互时的信息提示;
  42.               legend : {                        //图例;
  43.                     data : ['数量']
  44.               },
  45.               xAxis : {                         //设置ECharts图表组件内X轴刻度的样式;
  46.                     data : []
  47.               },
  48.               yAxis : {},                       //设置ECharts图表组件内y轴刻度的样式
  49.               series : [{
  50.                     name : '数量',
  51.                     type : 'bar',
  52.                     data : []
  53.               }]
  54.         };
  55.         //简单的加载动画;
  56.       // myChart.showLoading();

  57.         
  58.         //异步加载数据;
  59.         mainData(function(data){
  60.               //myChart.hideLoading();
  61.               myChart.setOption({
  62.                     xAxis : {
  63.                          data : data.categories
  64.                     },
  65.                     series : [{
  66.                          name : '数量',
  67.                          data : data.data
  68.                     }]
  69.               });
  70.         });
  71.         // 使用刚指定的配置项和数据显示图表。
  72.        // myChart.setOption(option);
  73.         var myChart = echarts.init(this.getElementByXid('detail'));              // 基于准备好的dom,初始化echarts实例   
  74.         };

  75.         return Model;
  76. });
复制代码

个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-28 10:23:18 | 显示全部楼层
建议数据库中的数据,先查询放置在data组件中(如果没有特殊要求,建议使用baasData 和 baasServer配合进行数据交互!)

然后数据加载到data组件中后,循环data.each 取出数据,转换成echarts 需要的数据格式,调用它的方法展示数据即可!

案例介绍:
http://docs.wex5.com/integrate-echarts/
http://docs.wex5.com/portfolio-items/wex5-echarts/
/UI2/demo/misc/echarts/demo.w
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2016-12-28 10:41:31 | 显示全部楼层
数据加载到data组件上了,关键是怎么循环呀,我就是不会循环取出数据,然后转换成json格式
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

发表于 2016-12-28 10:45:33 | 显示全部楼层
爱喝牛奶的面包 发表于 2016-12-28 10:41
数据加载到data组件上了,关键是怎么循环呀,我就是不会循环取出数据,然后转换成json格式 ...

循环的常规写法!
this.comp('mainData').each(function(param){
            names.push(param.row.val('fName'));
    });

param.row.val('字段')  就是 某个字段的值!
json格式如何转化!这个是js基础的语法知识!
如果是数组就是push 添加  对象赋值的话直接 obj.name = param.row.val('fName')

需要根据echarts 需要的格式进行转换!这个你动手试试吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2016-12-28 14:14:32 | 显示全部楼层
还是不会啊,按照您说的还是没整出来啊,本人是菜鸟。能不能说的再细点
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

发表于 2016-12-28 14:23:06 | 显示全部楼层
爱喝牛奶的面包 发表于 2016-12-28 14:14
还是不会啊,按照您说的还是没整出来啊,本人是菜鸟。能不能说的再细点 ...

给你个类似的代码!你参考下吧!
先定义好data  和 data1  的数据数组,然后data循环中给她们赋值!最后把他们添加到echarts  格式的数据中,就可以显示了!

  1.                 var data = [];
  2.                 var data1 = [];
  3.                 var params = new biz.Request.ActionParam();
  4.                 params.setParam("code", "");
  5.                 var ctx = this.getContext();
  6.                 var options = {                          
  7.             context : ctx,
  8.             action : "dataOA_DocAction1",
  9.                    callback: function(data3){
  10.                     if(data3.state){
  11.                             var rows = data3.response.rows;
  12.                             var length = rows.length;
  13.                             for(var i=0;i<length;i++){
  14.                                     var fType = rows[i].FDOCSECRETLEVELNAME.value;
  15.                                     var times = rows[i].RCB.value;
  16.                                     data[i] = fType;
  17.                                     data1[i] = {value:times,name:fType};
  18.                             }
  19.                            
  20.                     }else{
  21.        
  22.                     }
  23.                    }
  24.                   };
  25.                   var r=biz.Request.sendBizRequest(options);
  26.                   
  27.                
  28.                
  29.             var charTitle = "加密级别公文占比";
  30.         var option = {
  31.                 title:{
  32.                         text:charTitle,
  33.                         x:'center'
  34.                 },
  35.             tooltip : {
  36.                 trigger: 'item',
  37.                 formatter:"{a} {b}<br/> 公文数量 :{c}({d}%)"
  38.             },
  39.             
  40.             legend: {
  41.                     show : false,
  42.                 orient:'vertical',
  43.                 x:'left',
  44.                 data:data
  45.             },
  46.             calculable : false,
  47.             series : [
  48.                 {
  49.                     name:'加密级别',
  50.                     type:'pie',
  51.                     center:['50%','60%'],
  52.                     itemStyle:{
  53.                             normal:{
  54.                                     lable:{
  55.                                             show:true,
  56.                                             textStyle:{
  57.                                                     fontSize:'19',
  58.                                                     fontWeight:'bold'
  59.                                             },
  60.                                             formatter:"{b}:{c}({d}%)"
  61.                                     },
  62.                                     labelLine:{show:true}
  63.                             }
  64.                     },
  65.                     data:data1
  66.                 }
  67.             ]
  68.         };
  69.         var myChart2 = echarts.init(this.getElementByXid('main2'));
  70.         myChart2.setOption(option);
  71.        
复制代码
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2016-12-28 17:12:54 | 显示全部楼层
  1. define(function(require){
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         var util = require("$UI/system/components/justep/common/common");
  5.         require("$UI/demo/takeoutAdmin/dist/echarts-all");
  6.         var Model = function(){
  7.             this.isVisible = util.flag;
  8.                 this.callParent();
  9.         };

  10.         Model.prototype.modelLoad = function(event){            
  11.         
  12.         function mainData(cb){
  13.                  setTimeout(function(){
  14.                  var names = [];
  15.                  $.each(function(param){
  16.                         var row = this.comp("mainData").getValueByID("fName");
  17.                         names.push(row);
  18.                  });
  19.                
  20.                  var json = {};
  21.                  for(var i=0;i<names.length;i++){
  22.                      json[i]=names[i];
  23.                  }
  24.                 // var lst = [];
  25.                //  var obj = {};  
  26.                 // obj['categories']=param.row.val('fName');
  27.                 // obj['data']=param.row.val('number');
  28.               //   lst.push(obj);
  29.                //  json['content'] = lst;
  30.                       cb(
  31.                          JSON.stringify(json)
  32.                       );
  33.                  }, 1000);
  34.         }
  35.         option = {                                                      // 指定图表的配置项和数据
  36.               title:{
  37.                     text : '异步数据加载'
  38.               },
  39.               tooltip : {},                     //提示框,鼠标悬浮交互时的信息提示;
  40.               legend : {                        //图例;
  41.                     data : ['数量']
  42.               },
  43.               xAxis : {                         //设置ECharts图表组件内X轴刻度的样式;
  44.                     data : []
  45.               },
  46.               yAxis : {},                       //设置ECharts图表组件内y轴刻度的样式
  47.               series : [{
  48.                     name : '数量',
  49.                     type : 'bar',
  50.                     data : []
  51.               }]
  52.         };
  53.         //简单的加载动画;
  54.         myChart.showLoading({
  55.               text: '玩命加载中....'
  56.         });
  57.         //异步加载数据;
  58.         mainData(function(data){
  59.               myChart.setOption({
  60.                     xAxis : {
  61.                          data : data.row
  62.                     },
  63.                     series : [{
  64.                          name : '数量',
  65.                          data : data.data
  66.                     }]
  67.               });
  68.         });
  69.         // 使用刚指定的配置项和数据显示图表。
  70.         myChart.setOption(option);
  71.         var myChart = echarts.init(this.getElementByXid('detail'));              // 基于准备好的dom,初始化echarts实例   
  72.         };

  73.         return Model;
  74. });
复制代码
这是我的js代码,我还是没看明白您发的,您能不能帮我看看我这个应该怎么改?

个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2016-12-28 17:16:24 | 显示全部楼层
这是我的w页面和js页面,能帮我看看嘛?

这是数据库表

这是数据库表

新建文件夹.zip

2.14 KB, 下载次数: 64

这是我的w页面和js页面

个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

发表于 2016-12-28 17:25:29 | 显示全部楼层
爱喝牛奶的面包 发表于 2016-12-28 17:12
这是我的js代码,我还是没看明白您发的,您能不能帮我看看我这个应该怎么改?

...

不是$.each 而是 data.each 获取遍历数据,请看API 文档
  1. this.comp('mainData').each(function(param){
  2.             param.row.val('字段');//取值
  3.     });
复制代码



B}5YVV`R7]3S$O4$EB)G$5U.png
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-26 13:36 , Processed in 0.066630 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表