ajax做的二級級聯

jsp

<!--當前培訓機構下的所有班級名稱  -->
班級名稱:<s:select οnchange="checkClassStaging();" id="classId"  theme="simple" list="classList" listKey="gid" listValue="name"  name="classEntity.gid" ></s:select>
<!--當前培訓機構下的所有班級下的分期 -->
分期:<s:select  id="stagingId"  theme="simple" list="stagingList" listKey="gid" listValue="stagingCount" name="classEntity.classStagings.gid"></s:select>

 

action

/*查詢所有的消息*/
	public String fetchAll(){
		if(entity != null && entity.getGid()!=null){
			entity = null;
		}
		//分頁查詢
		totalRecordCount = service.fetchTotalCount(entity);
		computeTotalPage();
		
		entityList = service.fetchList(entity, computeStartIndex(), PAGE_RESULTS_SIZE);
		classList = service.fetchClass(this.getCurrentUser());//當前登錄用戶下的所有培訓機構
		stagingList = service.fetchStaging(classList);
		return RESULT_LIST;
	}	


serviceImpl

/*查詢當前培訓用戶下所有的班級 */
	@Override
	public List<ClassEntity> fetchClass(SecUserEntity user) {
		List<ClassEntity> classList = new ArrayList<ClassEntity>();
		SecUserEntity userEntity = fetchSingle(user);
		classList = userEntity.getClassEntityTrains();
		return classList;
	}
	
	/*查詢第一條數據班級下面的所有分期*/
	public List<ClassStagingEntity> fetchStaging(List<ClassEntity> classList) {
		List<ClassStagingEntity> stagingList = new ArrayList<ClassStagingEntity>();
		ClassEntity classEntities = classList.get(0);
		ClassEntity classEntity = fetchSingle(classEntities);
		stagingList = classEntity.getClassStagings();
		return stagingList;
	}


action

/*級聯下拉列表,通過從頁面傳過來的班級查找班級下面所有的分期*/
	public String cascadeClassStaging(){
		try{
			if(jsonParam!=null){
				ClassEntity classEntity = JSON.parseObject(jsonParam, ClassEntity.class);
				DwrResultVO result = service.fetchClassStaging(classEntity);
				jsonResult =JSONObject.toJSONString(result);
				System.out.println(jsonResult);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return "flag";
	}

serviceImpl

public DwrResultVO fetchClassStaging(ClassEntity classEntity){
		DwrResultVO result = new DwrResultVO();
		List<ClassStagingEntity> classStagingEntities = new ArrayList<ClassStagingEntity>();
		ClassEntity entity = fetchSingle(classEntity);
		classStagingEntities = entity.getClassStagings();//獲得班級下所有的分期
		if(classStagingEntities!=null){
			result.setOperationFlag(true);
			result.setClassStagingEntities(classStagingEntities);
		}else{
			result.setOperationFlag(false);
			result.setOperationMessage("當前班級還未分過期!!");
		}
		return result;
	}

 

jsp拼接(拼接option)

/*級聯菜單 通過當前班級查詢班級下所有的期數 */
	function checkClassStaging(){
		var classId = $("#classId").val();
		var entity = new Object();
		entity.gid = classId;
		if(classId!=""){
			$("#stagingId").empty();//拼接之前先刪除原有的下拉列表裏的值
			$.ajax({
				  async:false, 
		          url: "<%=APP_ACCESS_NAME%>/training/studentMessageAction!cascadeClassStaging.action",
		          type: "POST",
		          dataType: "json",
		          data: "jsonParam="+JSON.stringify(entity),
		          success: function( data ) {
		        	var result = JSON.parse(data);
		        	if(result.operationFlag==false){
		        		alert(result.operationMessage);
		        	}else if(result.operationFlag==true){
		        		var option='';
		        		for (var i = 0; i < result.classStagingEntities.length; i++) {//動態添加
		        			option +='<option value="'+result.classStagingEntities[i].gid+'">'+result.classStagingEntities[i].stagingCount+'</option>';
						}
		        		$("#stagingId").append($(option));    		
		        	}
		          }
			});
		}
		
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章