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

QQ登录

只需一步,快速开始

查看: 3089|回复: 1

[处理中3] 求助:页面上选定几个查询条件,查询并对取出的数据随机选取再显示出来

[复制链接]

15

主题

57

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2019-1-29 11:44:48 | 显示全部楼层 |阅读模式
求助:页面上选定几个查询条件,查询并对取出的数据随机选取再显示出来
1.选择查询条件
2.点击查询按钮并显示结果
3.点击随机选取,选出某几条数据记录(按查出的记录数的百分比随机选;或按指定个数随机的选取)
4.将随机选取的结果显示出来,然后将这几条数据合并后保存到数据库的指定字段
想了很久也不知道怎么解决,拜托拜托大神帮忙指点啊!

53

主题

928

帖子

1730

积分

金牌会员

Rank: 6Rank: 6

积分
1730
发表于 2019-6-19 17:39:58 | 显示全部楼层
这个很简单啊·····
1.和2  就不说了  基本操作
3.   随机选取数据 并显示     这个 我给你具体说说我的思路吧!
       定义一个全局变量  selectCount   来记录已经被选中的数据行数
     给你的data  增加一个计算列   用了记录该行数据是否被选中,选中时该列 值为1  未选中时值为0
       使用each方法遍历你的数据    在each中来一个随机函数(0-100的随机数字)  随机数大于50(随便你定一个值)则将该行的计算列的值设置为1   大概就是                  this.comp("data").each(function(param){
            if(满足条件){
            if(selectCount   <你设定的值){
            param.row.val("select",1);
             selectCount   +=1;
            }
            }  
然后 你修改list的filter   只显示  select的值为1的行  那就行了    保存的时候 也只把select的值为1的行上传保存就是
另外这个  随机有点不够完善的地方  就是在于    可能会存在多次循环的情况  有可能你对data 进行了一次循环 发现selectCount   值还小于你要取的数    这个时候 你就需要再循环一次  并且这次循环的时候对取过的行不再取

所以 就应该是  
           while(selectCount<你设定的值){
                this.comp("data").each(function(param){
            if(满足抽取条件){
            if(selectCount   <你设定的值&&param.row.val("select")!=1){
            param.row.val("select",1);
             selectCount   +=1;
            }
            }  
            }
承接wex5开发web项目、微信页面等;
低费用进行零散功能开发(java、JS、微信各种接口、阿里云接口等)
QQ:459349489
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 18:14 , Processed in 0.066043 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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