posts - 84,  comments - 54,  trackbacks - 0

          ?

          ???? public ?ActionForward?getOrganinfo_ajax(ActionMapping?mapping,?ActionForm?form,
          ????????????HttpServletRequest?request,?HttpServletResponse?response)?
          {
          ????????String?level2OrganId??
          = ?request.getParameter( " level2OrganId " );
          ????????System.out.print(level2OrganId);
          ????????IDReportLogic?dreportLogic?
          = ?(IDReportLogic)SpringFactory.getBeanFactory().getBean( " dreportLogic " );
          ????????
          ????????response.setContentType(
          " text/xml;charset=UTF-8 " );
          ????????response.setHeader(
          " Cache-control " ,? " no-cache " );

          ????????
          try {
          ????????????
          ????????????String?orgLevel?
          = ?request.getParameter( " orgLevel " );
          ????????????String?orgId?
          = ?request.getParameter( " orgId " );
          ????????????
          ????????????

          /*
          以下為前臺當中接受到的xml結構。

          ????????????StringBuffer?sb?=?new?StringBuffer();
          ????????????sb.append("<?xml?version=\"1.0\"?encoding=\"UTF-8\"?>");
          ????????????String?str="<select><kkk><value>11111</value><text>北京</text></kkk>";
          ????????????String?str2="<kkk><value>3333</value><text>上海</text></kkk></select>";
          ????????????sb.append(str);
          ????????????sb.append(str2);
          */

          ????????????
          ????????????PrintWriter?out?
          = ?response.getWriter();
          ????????????out.write(str);
          ????????????out.flush();
          ????????????
          return ? null ;
          ????????}
          ? catch ?(Exception?e)? {
          ????????????
          // ?TODO?自動生成?catch?塊
          ????????????request.setAttribute( " info " ,? " 獲取二級機構異常! " );
          ????????????e.printStackTrace();
          ????????????
          return ?mapping.getInputForward();
          ????????}

          ????????
          ????}





          二級機構:

          ??????????????????????
          ??????????????????
          < select?name = " secOrganIdSel " ?id = " secOrganIdSel "
          ??????????????????onchange
          = " selectChangeListener('2',this.options[this.selectedIndex].value); " >
          ??????????????????????
          < option?value = " -1 " > 請選擇機構.. </ option >
          </ select >

          ????三級機構:
          ??????????????????
          < select?name = " thdOrganIdSel " ?id = " thdOrganIdSel "
          ??????????????????onchange
          = " selectChangeListener('3',this.options[this.selectedIndex].value); " >
          ??????????????????????
          < option?value = " -1 " > 請選擇機構.. </ option >

          </ select >

          四級機構:
          ??????????????????
          < select?name = " forthOrganIdSel " >
          ??????????????????????
          < option?value = " -1 " > 請選擇機構.. </ option >
          ??????????????????
          </ select >

          ??1 ?? < script?language = " javascript " ?type = " text/javascript " >
          ??2 ?????? var ?xmlHttp;
          ??3 ??????
          ??4 ?????? function ?createXMLHttpRequest() {
          ??5 ?????????? if ?(window.ActiveXObject) {
          ??6 ???????????????xmlHttp? = ? new ?ActiveXObject( " Microsoft.XMLHTTP " );
          ??7 ??????????}
          else ? if (window.XMLHttpRequest) {
          ??8 ???????????????xmlHttp? = ? new ?XMLHttpRequest();
          ??9 ??????????}

          ?10 ??????}

          ?11 ??????
          ?12 ?????? // 查詢指定頁面
          ?13 ?????? function ?selectChangeListener(orgLevel,orgId) {
          ?14 ??????
          ?15 ????????createXMLHttpRequest();
          ?16 ??????
          ?17 ???????? var ?url = ? " <%=request.getContextPath()%>/dreportAction.do?method=getOrganinfo_ajax&orgLevel= " + orgLevel + " &orgId= " + orgId;
          ?18 ????????xmlHttp.open( " get " ,url, true );
          ?19 ???????? if (orgLevel? == ?' 2 ') {
          ?20 ???????????? // 如果是選擇默認的第一個,則是清空后面3級機構和4級機構。
          ?21 ???????????? var ?tempSel? = ?document.getElementById( " secOrganIdSel " );
          ?22 ???????????? if (tempSel.options[tempSel.selectedIndex].value? == ? - 1 ) {
          ?23 ???????????????? var ?tempSel_1? = ?document.getElementById( " thdOrganIdSel " );
          ?24 ??????????????????tempSel_1.options.length? = ? 1 ;
          ?25 ?????????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?26 ??????????????????tempSel_2.options.length? = ? 1 ;
          ?27 ?????????????????? return ? false ;
          ?28 ????????????}

          ?29 ????????????xmlHttp.onreadystatechange? = ?callback2;
          ?30 ????????}
          else ? if (orgLevel? == ?' 3 ') {
          ?31 ???????????? // 如果三級機構默認的是第一個選項,則清空第4級機構
          ?32 ????????????
          ?33 ???????????? var ?tempSel? = ?document.getElementById( " thdOrganIdSel " );
          ?34 ???????????? if (tempSel.options[tempSel.selectedIndex].value? == ? - 1 ) {
          ?35 ???????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?36 ??????????????????tempSel_2.options.length? = ? 1 ;
          ?37 ???????????????? return ? false ;
          ?38 ????????????}

          ?39 ????????????xmlHttp.onreadystatechange? = ?callback3;
          ?40 ????????}

          ?41 ????????
          ?42 ????????xmlHttp.send( null );
          ?43 ?????}

          ?44 ?????
          ?45 ????? // 返回信息處理,二級機構下拉列表返回結果
          ?46 ????? function ?callback2() {
          ?47 ???????? if ?(xmlHttp.readyState? == ? 4 )? {?
          ?48 ?????????? if ?(xmlHttp.status? == ? 200 )? {?
          ?49 ?????????????? var ?xmlDoc? = ?xmlHttp.responseXML;
          ?50 ??????????????changeSel(' 2 ',xmlDoc);
          ?51 ??????????}
          else {
          ?52 ????????????????window.alert( " 您所請求的頁面有異常。 " );
          ?53 ??????????}

          ?54 ????????}
          ??????????
          ?55 ?????}

          ?56 ?????
          ?57 ?????
          ?58 ????? // 返回信息處理,三級機構下拉列表返回結果
          ?59 ????? function ?callback3() {
          ?60 ???????? if ?(xmlHttp.readyState? == ? 4 )? {?
          ?61 ?????????? if ?(xmlHttp.status? == ? 200 )? {?
          ?62 ?????????????? var ?xmlDoc? = ?xmlHttp.responseXML;
          ?63 ??????????????changeSel(' 3 ',xmlDoc);
          ?64 ??????????}
          else {
          ?65 ????????????????window.alert( " 您所請求的頁面有異常。 " );
          ?66 ??????????}

          ?67 ????????}
          ??????????
          ?68 ?????}

          ?69 ?????
          ?70 ????? // 更新機構下拉列表
          ?71 ????? function ?changeSel(orgLevel,xmlDoc) {
          ?72 ?????
          ?73 ?????????? // var?xsel?=?xmlDoc.getElementsByTagName('kkk');
          ?74 ?????????? var ?xsel? = ?xmlDoc.documentElement.childNodes;
          ?75
          ?76 ?????????? // alert(xsel.length);
          ?77 ?????????? if (orgLevel? == ?' 2 ') {
          ?78 ?????????????? // 二級機構,3級機構和4級機構需要清空。
          ?79 ?????????????? var ?tempSel_1? = ?document.getElementById( " thdOrganIdSel " );
          ?80 ??????????????tempSel_1.options.length? = ? 0 ;
          ?81 ??????????????tempSel_1.add( new ?Option('請選擇機構',' - 1 '))
          ?82 ?????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?83 ??????????????tempSel_2.options.length? = ? 0 ;
          ?84 ??????????????tempSel_2.add( new ?Option('請選擇機構',' - 1 '))
          ?85 ??????????????
          ?86 ?????????????? for ( var ?i? = ? 0 ;?i? < ?xsel.length;i ++ ) {
          ?87 ?????????????????? var ?xvalue? = ?xsel[i].childNodes[ 0 ].firstChild.nodeValue;
          ?88 ?????????????????? var ?xtext? = ??xsel[i].childNodes[ 1 ].firstChild.nodeValue;
          ?89 ?????????????????? var ?option? = ? new ?Option(xtext,xvalue);
          ?90 ??????????????????tempSel_1.add(option);
          ?91 ??????????????}

          ?92 ??????????????
          ?93 ??????????}
          else ? if (orgLevel? == ?' 3 ') {
          ?94 ?????????????? // 三級機構,四級機構需要清空
          ?95
          ?96 ?????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?97 ??????????????tempSel_2.options.length? = ? 0 ;
          ?98 ??????????????tempSel_2.add( new ?Option('請選擇機構',' - 1 '))
          ?99 ??????????????
          100 ??????????????? for ( var ?i? = ? 0 ;?i? < ?xsel.length;i ++ ) {
          101 ?????????????????? var ?xvalue? = ?xsel[i].childNodes[ 0 ].firstChild.nodeValue;
          102 ?????????????????? var ?xtext? = ??xsel[i].childNodes[ 1 ].firstChild.nodeValue;
          103 ?????????????????? var ?option? = ? new ?Option(xtext,xvalue);
          104 ??????????????????tempSel_2.add(option);
          105 ??????????????}

          106 ??????????????
          107 ??????????}

          108 ?????????
          109 ?????}

          110
          111
          112 ? </ script >
          posted on 2008-04-07 14:49 JavaCoffe 閱讀(4051) 評論(8)  編輯  收藏 所屬分類: JavaScript&AjaxAjax


          FeedBack:
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-04-08 12:50 | beijixuem
          建議樓主把代碼提供下載呀!看這有點亂呀!你也用spring 了吧?  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新[未登錄]
          2008-04-10 09:30 | javacoffe
          @beijixuem
          代碼是齊全的,你仔細看看。action當中的xml結構是模擬的,看你的機構是怎么設置的。
            回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-04-11 12:51 | dreamli
          好東西啊!  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-04-14 16:33 | onejavaer
          樓主,把你完整的練習源碼發給我一份好嗎,學習一下,謝謝!

          onejavaer@126.com  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-04-15 12:52 | JavaCoffe
          上面代碼是齊全的,你放到actiong當中或servlet,jsp當中都可以,只要模擬出xml結構就行。
          剩下的就是html當中的js代碼,考入到相應的一個jsp頁面或者html頁面就行。  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-04-15 13:46 | onejavaer
          好的,學習下,謝謝~~!  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新
          2008-11-27 14:49 | 哎呀
          代碼是不錯,就是不會用  回復  更多評論
            
          # re: ajax+struts實現多級下拉列表聯動,無刷新[未登錄]
          2009-12-14 21:37 | 呵呵
          哥們可以給個詳細的例子么?我現在正在做這個 我想要的效果就是像淘寶上的
          你去賣東西時的那個效果 http://sell.taobao.com/auction/publish/publish.htm?auction_type=b 不知道能實現了么?  回復  更多評論
            
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(5)

          隨筆分類(80)

          收藏夾(1)

          最新隨筆

          積分與排名

          • 積分 - 58290
          • 排名 - 893

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 扶沟县| 双鸭山市| 万载县| 墨竹工卡县| 合水县| 新密市| 临颍县| 宁蒗| 永胜县| 潞西市| 连平县| 昭平县| 普安县| 蚌埠市| 淳安县| 抚宁县| 筠连县| 衢州市| 天祝| 曲靖市| 天津市| 泰安市| 开阳县| 右玉县| 景德镇市| 安塞县| 闽侯县| 吴川市| 金阳县| 凌云县| 蕲春县| 阿克陶县| 刚察县| 普兰店市| 嘉荫县| 新余市| 普宁市| 河东区| 华宁县| 麻城市| 嘉荫县|