利用jquery的ajax實現二級聯互動菜單

來源:互聯網
上載者:User

       二級聯互動菜單,利用了jquery的ajax實現,具體實現如下,喜歡的朋友可以參考下

       菜單資源儲存在資料庫中。利用了jquery的ajax實現。用到的包有:json-lib-2.2.3-jdk15.jar ezmorph-1.0.6.jar json.js jquery.js  jsp頁面的代碼: 代碼如下:<%@ page contentType="text/html; charset=gbk"%> <%@ taglib prefix="s" uri="/struts-tags"%> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/json.js"></script> <% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; out.println(basePath); %>  <script type="text/javascript"> jQuery(function($){ //alert("ok"); }); function onchangeShow(oneId){ $.ajax({ url : "<%=basePath%>cateJson.whbs", data : {parentId : oneId}, // 參數 type : "post", cache : false, dataType : "json", //返回json資料 error: function(){ alert('error'); }, success:onchangecallback }); } function onchangecallback(data){ document.all['twoId'].options.length = 0; //清空原有的option var str=""; for(var i=0;i<data.length;i++){ str+="<option value='"+data[i].recordId+"'>"+data[i].title+"</option>" } $("#twoId").html(str); } </script> <html> <body> <div align="center"> 請選擇部門類型 <s:select list="rfones" listKey="recordId" listValue="title" name="oneId" theme="simple" id="oneId" value="oneID" onchange="onchangeShow(this.value)"></s:select>  請選擇檔案類型 <s:select list="rftwos" listKey="recordId" listValue="title" name="twoId" theme="simple" id="twoId" value="twoID"></s:select> </div> </body> </html>  struts中action的代碼  代碼如下:/** * des:取得二級聯動菜單 * autho:exceljava * date:Nov 20, 2009 * @return * @throws IOException */ public String getJsonCategory() throws IOException{ rfjsons=archiveService.getCategoryByParentID(parentId);//這裡從資料庫取得資料 net.sf.json.JSONArray jsonObj=net.sf.json.JSONArray.fromObject(rfjsons);//組裝成json資料 sendMessage(jsonObj.toString());//向視圖push json資料 return null; } /** * des:封裝發送json格式的資料回js * autho:exceljava * date:Nov 20, 2009 * @param content * @throws IOException */ public void sendMessage(String content) throws IOException{ HttpServletResponse response = ServletActionContext.getResponse(); response.setCharacterEncoding("UTF-8"); response.getWriter().write(content);  }  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.