关于Select下拉框中的"全部"选项,怎样通过默认选中"全部"查询所有数据

  今天解决了一个问题,就是,当你在下拉框中通过选中"全部",来查询所有数据。

怎么解决呢?

  通常情况下,我们都是通过select下拉框中的一个值来查询某一条数据,比如

<select>
  <option value ="1">Volvo</option>
  <option value ="2">Saab</option>
  <option value="3">Opel</option>
  <option value="4">Audi</option>
</select>

通过value里的值来按条件查询后台数据库。

那么,如果要你选择全部呢?你会怎么做?

<select><option value ="">全部</option>
  <option value ="1">Volvo</option>
  <option value ="2">Saab</option>
  <option value="3">Opel</option>
  <option value="4">Audi</option>
</select>

“全部”那一个option的value里面的值应该是什么呢?

其实很简单:

因为我用的是ssm,在mapper.xml中先写查询语句,前面的直接查询表里面的所有列,后面的where条件写 “where 1=1” 之后用<if test="id!=null">id=#{id} </if> 这么做是为了判断,如果有id则条件查询,如果没有id那就查询所有列。

这时候你该问了:那如果select的全部里显示不出来怎么办呢?

比如你之前是这样写的:

<option value ="">全部</option>

但是到了前台你点全部,但是select中显示不出来"全部"  那怎么办呢?

 

其实,你可以给<option value ="">Volvo</option>设置一个value值,但是这个值不能与你数据库表里的id相同。(方法二:推荐用字符串<option value ="全部">Volvo</option>,不会考虑BUG问题)也就是说数据库的id字段里不能有你设置的这个value值。否则它会只查询一条数据。之后你可能会有疑问了: 那这个value有值,传到mapper.xml中是有值的啊  咋办?  

解决办法:如果你是使用ajax发送请求,那么,在得到这个“全部”中的value之后,把它在设置为" ",也就是空字符串

比如:

data.officeid = myscope.id;

 if(data.officeid==1 ){
         data.officeid='';
     }

之后再发送ajax请求时,id就是一个空值了,到mapper.xml中的时候就不存在where条件查询了,那么查询到的值也是全部的。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值