1. 程式人生 > >ajax 2級級聯下拉框

ajax 2級級聯下拉框

js

function getqhlx(){
      var business = $("#business").val();
     // business = $("#business").find("option:selected").text();
      $("select[name=pdid]").empty();     //清空seletct的資料  
      $.ajax({
          type:"POST",                        //post請求
          url:"/admin.log.do?m=getlsqhQhlx",                          //請求後臺action 根據需求請求自己的後臺資料
          data:{"business":business},                   //傳到後臺的引數,後臺需要編寫get和set方法且和返回資料名相同。
          dataType:"json",                    //預期伺服器返回的資料型別
          error:function(){                   //ajax錯誤的方法
          },   
          success:function(data){             //ajax成功的方法 在裡賣弄給select的<option>標籤賦值
              //向select中append、option標籤
              var optionString = "";
              var beanList = data;            //返回的json資料
              if(beanList){                   //判斷
                  for(var i=0; i<beanList.length; i++){ //遍歷,動態賦值
                      optionString +="<option grade=\""+beanList[i].ID+"\" value=\""+beanList[i].ID+"\"";  
                      optionString += ">"+beanList[i].TYPENAME+"</option>";  //動態新增資料  
                  }  $("select[name=pdid]").append(optionString);  // 為當前name為asd的select新增資料。
              }  
          }  
      }); 
  }

 

html

<body>

<select name="business" id="business" class="input_a l" style="width:200px;font-size:20px" onchange="getqhlx()">
                            <c:forEach items="${list_ywlx }" var="ywlx" varStatus="index1">
                                    <option value="<c:out value="${ywlx.ID }"/>" <c:if test="${ywlx.ID == business }">selected="selected"</c:if>><c:out value="${ywlx.BUSINESSNAME }"/></option>
                            </c:forEach>
                        </select>

第一次查詢預設業務型別下的取號型別

<select name="pdid" id="pdid" class="input_a l" style="width:200px;font-size:20px">
                            <c:forEach items="${list_qhlx }" var="qhlx" varStatus="index1">
                                <option value="<c:out value="${qhlx.ID }"/>" <c:if test="${qhlx.ID == pdid }">selected="selected"</c:if> ><c:out value="${qhlx.TYPENAME }"/></option>
                            </c:forEach>
                        </select>

</body>

java

/**
          * 獲得臨時取號型別
          * 通過業務id
          * @param request
          * @param response
          */
         public void getlsqhQhlx(HttpServletRequest request, HttpServletResponse response){
                
                try {
                    response.setContentType("text/html;charset=utf-8");
                    request.setCharacterEncoding("UTF-8");
                    String business = ServletRequestUtils.getStringParameter(request, "business", ""); //預約業務型別
                    String ywid=business;
                    String sql_qhlx = "select p.id,p.typename,p.typecode,'"+ywid+"' ywlx from  table1 p where  p.valid='1' and state='1' and p.id in(select pnb.numberid from table2 pnb where pnb.businessid='"+ywid+"')";
                    DBUtil db = new DBUtil();
                    List<HashMap<String, Object>>  list_qhlx= db.getAll(sql_qhlx);
                    out(response, JSONArray.fromObject(list_qhlx));
                    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

/**
         * 返回json物件 utf-8 application/json
         * 
         * @param response
         * @param json
         *            返回的json資料
         */
        private void out(HttpServletResponse response, Object json) {
            PrintWriter out = null;
            try {
                response.setContentType("text/html;charset=UTF-8");
                out = response.getWriter();
                out.print(json);
                out.flush();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (out != null) {
                    out.close();
                }
            }
        }