首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于checkbox多个选项查询的有关问题,多谢

2014-01-17 
关于checkbox多个选项查询的问题,谢谢。现在的需求是这样的,前台页面上有三个checkbox,这三个checkbox分别

关于checkbox多个选项查询的问题,谢谢。
现在的需求是这样的,
前台页面上有三个checkbox,
这三个checkbox分别对应三种查询,XX YY ZZ 这三种查询 查询的表不一样。

代码如下:


public String add(){
  String type[]=["10","20","30"];//由页面传递过来,组合为8种checkbox的组合 一个个的if-else太麻烦了
  //["10","20","30"]、["10","20"]、["10","30"]、["20","30"]、["10","20","30"]、["10"]、["20"]、["30"]
 if(type.equals("10")){
int number = doXXX();
if(number>100){
   return "too big";
}else{
list = doXX();
return "something";
}

 }else if(type.equals("20")){
int number = doYYY();
if(number>100){
   return "too big";
}else{
list = doYY();
return "something";
}

 }else if(type.equals("30")){
int number = doZZZ();
if(number>100){
   return "too big";
}else{
list = doZZ();
return "something";
}
 }else if(type.equals("10,30")){
int number1 = doXXX();
int number2 = doZZZ();
if((number1+number2)>100){
   return "too big";
}else{
list = doXX();
list = doZZ();
return "something";
}
 
 }else if(){
 
......
 }



改进之后如下:我在集合里面迭代,有值的时候执行if,但是这种判断
number数量就不好判断了,请问该怎么弄,谢谢。

public List<User> add(){
  String type[]=s;//由页面传递过来,组合为8种checkbox的组合 
  //["10","20","30"]、["10","20"]、["10","30"]、["20","30"]、["10","20","30"]
  for(String tp:s){
if(tp.equals("10")){
int number = doXXX();
if(number>100){
   return "too big";
}else{
list = doXX();
return "something";
}
 }
 if(tp.equals("20")){
int number = doYYY();
if(number>100){
   return "too big";
}else{
list = doYY();
return "something";
}
 }
 if(tp.equals("30")){
int number = doZZZ();
if(number>100){
   return "too big";
}else{
list = doZZ();
return "something";
}
 }
  }
  

}

[解决办法]
引用:
Quote: 引用:

只有7种组合吧?
【10】,【20】,【30】,【10,20】,【10,30】,【20,30】,【10,20,30】。
可以先分成3组,直接判断字符串的length。
分组这个if else还是很多啊,

相对而言吗。我觉得你要是觉得这样if判断太多,你最好将这里面的值应用到你的查询上。最后就一个for循环。
比如
for(int i : args){
db.query("select * from xxx where number=" + i);
}
想办法去这样优化。

[解决办法]
query(a,b,c)

这是一个查询数据库的方法,a,b,c  分别是3个下拉选的值

如果b和c为空 查询a表

a为空 查询b表和c表 
以此类推吗 
[解决办法]
最外面定义一个count
如果 a有值,则加到count里面去。
一个个的判断
 if (a){

}

if(b){

}

if(c){

}

是并列的关系。
[解决办法]
个人观点:不需要分什么 组合,,  js 获取checkbox的 value ,如果 被 选中 就获取 value  ,如果 没有被选中 就传  null;那么 你后台 接收的 就是 3个  值(不管 是否为空) ,, 在 用 sql根据这 3个 值  去 查询 就 解决 了  。。  个人 感觉要 把握 需求、做出合理的分析、、这个 是最重要的

热点排行