当你模糊查询的时候遇到需要传多个checkbox值的时候,就很苦恼(如下所示)
该如何解决呢?
上代码
前端代码:
<div class="frm_group">
<label class="frm_label" id="lbl_productOrder_status"
for="checkbox_productOrder_status_waitPay">订单状态</label>
<input class="frm_radio radio_productOrder_status" id="checkbox_productOrder_status_waitPay"
name="checkbox_productOrder_status" type="checkbox" value="0" checked="">
<label class="frm_label" id="lbl_productOrder_status_waitPay"
for="checkbox_productOrder_status_waitPay" title="等待买家付款">待付款</label>
<input class="frm_radio radio_productOrder_status" id="checkbox_productOrder_status_waitDelivery"
name="checkbox_productOrder_status" type="checkbox" value="1" checked="">
<label class="frm_label" id="lbl_productOrder_status_waitDelivery"
for="checkbox_productOrder_status_waitDelivery" title="买家已付款,等待卖家发货">待发货</label>
<input class="frm_radio radio_productOrder_status" id="checkbox_productOrder_status_waitConfirm"
name="checkbox_productOrder_status" type="checkbox" value="2" checked="">
<label class="frm_label" id="lbl_productOrder_status_waitConfirm"
for="checkbox_productOrder_status_waitConfirm" title="卖家已发货,等待买家确认">待确认</label>
<input class="frm_radio radio_productOrder_status" id="checkbox_productOrder_status_success"
name="checkbox_productOrder_status" type="checkbox" value="3" checked="">
<label class="frm_label" id="lbl_productOrder_status_success"
for="checkbox_productOrder_status_success" title="交易成功">交易成功</label>
<input class="frm_radio radio_productOrder_status" id="checkbox_productOrder_status_close"
name="checkbox_productOrder_status" type="checkbox" value="4" checked="">
<label class="frm_label" id="lbl_productOrder_status_close" for="checkbox_productOrder_status_close"
title="交易关闭">交易关闭</label>
<span class="frm_error_msg" id="text_productOrder_msg"></span>
</div>
var checkedIds = $(".radio_productOrder_status:checked"); //获取class标签名为radio_productOrder_status的状态
$.each(checkedIds, function () {//获取值并将它们拼接成id=xxxx&id=xxx&.....&id=xxx&
productOrderStatusArray += $(this).val() + ",";
});
productOrderStatusArray = productOrderStatusArray.substr(0, productOrderStatusArray.length - 1);//去掉最后一个& id=xxxx&id=xxx&.....&id=xxx
后端代码:
controller层:
@GetMapping("queryProductOrderByConditionForPage")
@ResponseBody
public R queryProductOrderByConditionForPage(String productOrderCode,String productOrderPost,String[] productOrderStatusArray, int pageNo, int pageSize)
mapper层的xml:
<resultMap id="ProductOrderMap" type="ProductOrder">
<id property="productOrderId" column="productorderId"/>
<result property="productOrderCode" column="productorderCode"/>
<result property="productOrderPost" column="productorderPost"/>
<result property="productOrderReceiver" column="productorderReceiver"/>
<result property="productOrderMobile" column="productorderMobile"/>
<result property="productOrderStatus" column="productorderStatus"/>
</resultMap>
<select id="selectProductOrderByConditionForPage" resultMap="ProductOrderMap">
select productorderId,
productorderCode,productorderPost,productorderReceiver,
productorderMobile,productorderStatus
from productorder
<where>
<if test="productOrderCode != null and productOrderCode != ''">
and productorderCode like '%' #{productOrderCode} '%'
</if>
<if test="productOrderPost != null and productOrderPost != ''">
and productorderPost like '%' #{productOrderPost} '%'
</if>
<if test="productOrderStatusArray != null and productOrderStatusArray.length > 0">
and productorderStatus in
<foreach collection="productOrderStatusArray" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</where>
ORDER BY productorderId DESC
limit #{beginNo}, #{pageSize}
</select>
按照上面的步骤即可解决获取多个checkbox的问题实现模糊查询!!!