jQuery实现级联下拉

<form class="form-horizontal" role="form" id="table_validate" action="${contextPath}/manage/mdrccardinfo/activate.html?configId=${configId}&status=3" method="POST">
    				<input type="hidden" name="type" value="${type!}" />
					<input type="hidden" name="ids" value="${ids!}" />
					<input type="hidden" name="activateCardNums" id="activateCardNums" value="${activateCardNums!}" />
	
    				<div class="form-group">
    					<label class="col-sm-3 control-label">流量包大小</label>
    					<div class="col-sm-9">
    						<label>${template.productSize!}MB</label>
    					</div>
    				</div>
    				
    				<div class="space-4"></div>
    				<div class="form-group">
    					<label class="col-sm-3 control-label">关联企业</label>
    					<div class="col-sm-9">
    						<select name="enterId" id="enterId" style="width:300px;" onChange = "enterChange()">
	    						<option value="0" selected>请选择关联企业</option>
	    						<#if enterpriseList?? && enterpriseList?size gt 0>			
	    							<#list enterpriseList as enter>
	    								<option value="${enter.id}">${enter.name}</option>
	    							</#list>
								</#if>
    						</select>  
    						<span style="color:red" id="tip_enterId"></span>
    						<span class="help-block">营销卡激活需要与企业进行关联绑定</span>
    					</div>
    				</div>
    				
    				<div class="space-4"></div>
    				<div class="form-group">
    					<label class="col-sm-3 control-label">关联产品</label>
    					<div class="col-sm-9">
    						<select name="prdId" id="prdId" style="width:300px;" οnchange="prdChange()">
    						<option value="0">请选择关联产品</option>
    						<#if products?? && products?size gt 0>			
    							<#list products as item>
    								<option value="${item.id}">${item.name}</option>
    							</#list>
							</#if>
    						</select>  
    						<span style="color:red" id="tip_prdId"></span>
    						<span class="help-block">营销卡激活需要与对应流量包大小的产品名称关联锁定</span>
    					</div>
    				</div>
    			
    				<div class="space-4"></div>
    				<div class="form-group">
    					<label class="col-sm-3 control-label">可激活卡数目</label>
    					<div class="col-sm-9">					
    						<span id="acvivatableMsg" style="color: red"></span>   <input type="hidden" id="acvivatableNum" value="" />
    					</div>
    				</div>  
    				   			
					<div class="space-4"></div>
    				<#if list?? && (list?size > 0) >
    				<div class="form-group">
    					<label class="col-sm-3 control-label">卡序列号</label>
    					<div class="col-sm-9">
    						<#list list as item>
    						<p>${item.cardNumber}</p>
    						</#list>
    					</div>
    				</div>
    				</#if>

    				<div class="hr hr-24"></div>
    				<div class="form-group">
    					<label class="col-sm-3 control-label" ></label>
    					<div class="col-sm-9">
    						<button type="button" class="btn btn-info"  οnclick="doSubmit()">激活</button>  
    						<span style="color: red" id="errMsg">${errMsg!}</span>
    					</div>
    				</div>
    			</form>


 
<script>
<span style="white-space:pre">	</span>function enterChange(){
<span style="white-space:pre">		</span>$("#tip_enterId").empty(); 
	<span style="white-space:pre">	</span>$("#errMsg").empty();
	<span style="white-space:pre">	</span>var enterId = jQuery("#enterId option:selected").val();
			      
	<span style="white-space:pre">	</span>if(enterId==0){
		<span style="white-space:pre">	</span>$("#tip_enterId").append("请选择企业");
		}
		else{
			$.ajax({
			<span style="white-space:pre">	</span>type : "GET",  
				url : "${contextPath}/manage/product/getProductsAjaxBySizeEnterId.html",
				data : {
				<span style="white-space:pre">	</span>enterId : enterId,
				<span style="white-space:pre">	</span>proSize : ${template.productSize!}  
				},
				dataType : "json", //指定服务器的数据返回类型,
				success : function(data){
				<span style="white-space:pre">	</span>var listProducts = data.products;
					$("#prdId").empty();
					if(listProducts.length==0){
						$("#prdId").append("<option value=''>---该企业没有查询到相关产品---</option>");
					}
					else{
						for(var i=0;i<listProducts.length;i++){
							var id= listProducts[i].id;
							var name= listProducts[i].name;
							$("#prdId").append("<option value='"+id+"'>"+name+"</option>");
						}		
					}	    
				},
				error:function(){ 
				<span style="white-space:pre">	</span>$("#prdId").empty();    
		                      <span style="white-space:pre">	</span>var message= "查询失败,请稍后尝试";
					var remainNum= 0;
				        $("#acvivatableMsg").html(message);
				        $("#acvivatableNum").val(remainNum);
		                   }   
			}); 
		}  
	} 

	function prdChange(){  
<span style="white-space:pre">		</span>$("#errMsg").empty();
	<span style="white-space:pre">	</span>var prdId = jQuery("#prdId option:selected").val();
			       
	<span style="white-space:pre">	</span>if(prdId==0){
		<span style="white-space:pre">	</span>$("#tip_enterId").append("请选择企业");
			$("#acvivatableMsg").empty();
		}
	} 

	function doSubmit(){
		var enterId = $("#enterId").val();
		var prdId = $("#prdId").val();
		$("#errMsg").empty();
		$("#tip_enterId").empty();
		$("#tip_prdId").empty();
			     
		if(enterId == 0){
		<span style="white-space:pre">	</span>$("#tip_enterId").append("请选择企业");
			     	return;
		}
		if(prdId == 0){
			$("#tip_prdId").append("请选择产品");
			     	return;
		}
			     
		var activateCardNums = $("#activateCardNums").val();
		var acvivatableNum = $("#acvivatableNum").val();
		//alert("需要激活数目:"+activateCardNums);
		if(activateCardNums=='' || acvivatableNum=='' || Number(activateCardNums) > Number(acvivatableNum)){
		<span style="white-space:pre">	</span>$("#errMsg").append("您当前正在激活的卡数目是"+ activateCardNums + " ,超过了可激活卡数目,请重新选择关联企业");
			<span style="white-space:pre">	</span>return; 
		}

		$("#table_validate").submit();
 <span style="white-space:pre">	</span>}
</script>
/**
	 * 
	 * @Title:getProductsAjaxBySizeEnterName
	 * @Description: 根据流量包大小和企业名称查询相应的产品列表
	 * @param request
	 * @param response
	 * @param product
	 * @throws IOException
	 * @throws
	 * @author: caohaibing
	 */
	@RequestMapping(value = "getProductsAjaxBySizeEnterId")
	public void getProductsAjaxBySizeEnterId(HttpServletRequest request, HttpServletResponse resp) throws IOException{
		
		String proSize = request.getParameter("proSize");	
		String enterId=request.getParameter("enterId"); 
		
		resp.setCharacterEncoding("UTF-8");
		
		if(enterId == null ||  proSize == null){
			return;
		}
		
		HashMap<String, Object> params = new  HashMap<String, Object>(); 
		
		long id = NumberUtils.toLong(enterId);
		long size = NumberUtils.toLong(proSize);
		
		
		params.put("enterId", id);
		params.put("proSize", proSize);
		
		List<Product> products = productService.getProListByProSizeEnterId(params);
		
		for(int i=0;i<products.size();i++){
			System.out.println(products.get(i).getName());
		}
		
		Map<String, Object> map=new HashMap<String, Object>();//ajax传输的值
		map.put("products", products);
		resp.getWriter().write(JSON.toJSONString(map));
	}

Service: 注意这边的参数:Map<String, Object> map,若是用HashMap<String, Object> map,数据映射文件ProductMapper.xml中对应方法会出现字段类型转换错误。

List<Product> getProListByProSizeEnterId(Map<String, Object> map);
ServiceImpl:

public List<Product> getProListByProSizeEnterId(Map<String, Object> map) {
		return productMapper.getProListByProSizeEnterId(map);
	}
ProductMapper.java

List<Product> getProListByProSizeEnterId(Map<String, Object> map);
ProductMapper.xml

<select id="getProListByProSizeEnterId" parameterType="java.util.Map"
		resultMap="BaseResultMap">
		SELECT
		p.id, p.product_code, p.name, p.status, p.size, p.create_time, p.update_time, p.delete_flag
		
		FROM chongqing_product p left join chongqing_ent_product ep on ep.product_id = p.id,
		chongqing_enterprises e
		
		<where>
		    and p.delete_flag = 0
		    and e.delete_flag = 0
		    and ep.delete_flag = 0
		    and ep.enterprize_id = e.id
		    
		    <if test="proSize != null">
				AND p.size = #{proSize,jdbcType=BIGINT}
			</if>
			 <if test="enterId != null">
				AND e.id = #{enterId,jdbcType=BIGINT}
			</if>		
		</where>
	</select>








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值