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 " );
          ????????????
          ????????????

          /*
          以下為前臺當(dāng)中接受到的xml結(jié)構(gòu)。

          ????????????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 " ,? " 獲取二級機(jī)構(gòu)異常! " );
          ????????????e.printStackTrace();
          ????????????
          return ?mapping.getInputForward();
          ????????}

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





          二級機(jī)構(gòu):

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

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

          </ select >

          四級機(jī)構(gòu):
          ??????????????????
          < select?name = " forthOrganIdSel " >
          ??????????????????????
          < option?value = " -1 " > 請選擇機(jī)構(gòu).. </ 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 ???????????? // 如果是選擇默認(rèn)的第一個(gè),則是清空后面3級機(jī)構(gòu)和4級機(jī)構(gòu)。
          ?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 ???????????? // 如果三級機(jī)構(gòu)默認(rèn)的是第一個(gè)選項(xiàng),則清空第4級機(jī)構(gòu)
          ?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 ????? // 返回信息處理,二級機(jī)構(gòu)下拉列表返回結(jié)果
          ?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 ????? // 返回信息處理,三級機(jī)構(gòu)下拉列表返回結(jié)果
          ?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 ????? // 更新機(jī)構(gòu)下拉列表
          ?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 ?????????????? // 二級機(jī)構(gòu),3級機(jī)構(gòu)和4級機(jī)構(gòu)需要清空。
          ?79 ?????????????? var ?tempSel_1? = ?document.getElementById( " thdOrganIdSel " );
          ?80 ??????????????tempSel_1.options.length? = ? 0 ;
          ?81 ??????????????tempSel_1.add( new ?Option('請選擇機(jī)構(gòu)',' - 1 '))
          ?82 ?????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?83 ??????????????tempSel_2.options.length? = ? 0 ;
          ?84 ??????????????tempSel_2.add( new ?Option('請選擇機(jī)構(gòu)',' - 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 ?????????????? // 三級機(jī)構(gòu),四級機(jī)構(gòu)需要清空
          ?95
          ?96 ?????????????? var ?tempSel_2? = ?document.getElementById( " forthOrganIdSel " );
          ?97 ??????????????tempSel_2.options.length? = ? 0 ;
          ?98 ??????????????tempSel_2.add( new ?Option('請選擇機(jī)構(gòu)',' - 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 閱讀(4057) 評論(8)  編輯  收藏 所屬分類: JavaScript&Ajax 、Ajax


          FeedBack:
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-04-08 12:50 | beijixuem
          建議樓主把代碼提供下載呀!看這有點(diǎn)亂呀!你也用spring 了吧?  回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新[未登錄]
          2008-04-10 09:30 | javacoffe
          @beijixuem
          代碼是齊全的,你仔細(xì)看看。action當(dāng)中的xml結(jié)構(gòu)是模擬的,看你的機(jī)構(gòu)是怎么設(shè)置的。
            回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-04-11 12:51 | dreamli
          好東西?。?nbsp; 回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-04-14 16:33 | onejavaer
          樓主,把你完整的練習(xí)源碼發(fā)給我一份好嗎,學(xué)習(xí)一下,謝謝!

          onejavaer@126.com  回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-04-15 12:52 | JavaCoffe
          上面代碼是齊全的,你放到actiong當(dāng)中或servlet,jsp當(dāng)中都可以,只要模擬出xml結(jié)構(gòu)就行。
          剩下的就是html當(dāng)中的js代碼,考入到相應(yīng)的一個(gè)jsp頁面或者h(yuǎn)tml頁面就行。  回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-04-15 13:46 | onejavaer
          好的,學(xué)習(xí)下,謝謝~~!  回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新
          2008-11-27 14:49 | 哎呀
          代碼是不錯(cuò),就是不會用  回復(fù)  更多評論
            
          # re: ajax+struts實(shí)現(xiàn)多級下拉列表聯(lián)動,無刷新[未登錄]
          2009-12-14 21:37 | 呵呵
          哥們可以給個(gè)詳細(xì)的例子么?我現(xiàn)在正在做這個(gè) 我想要的效果就是像淘寶上的
          你去賣東西時(shí)的那個(gè)效果 http://sell.taobao.com/auction/publish/publish.htm?auction_type=b 不知道能實(shí)現(xiàn)了么?  回復(fù)  更多評論
            
          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(5)

          隨筆分類(80)

          收藏夾(1)

          最新隨筆

          積分與排名

          • 積分 - 58610
          • 排名 - 894

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 济源市| 西城区| 仁怀市| 大荔县| 抚宁县| 封丘县| 白玉县| 徐汇区| 饶平县| 阿拉尔市| 元朗区| 宜都市| 永宁县| 九台市| 淳化县| 盈江县| 育儿| 铜川市| 贵阳市| 蓝山县| 安吉县| 大安市| 镇沅| 图木舒克市| 含山县| 怀柔区| 个旧市| 万载县| 石林| 汨罗市| 建昌县| 咸阳市| 高阳县| 兴山县| 天津市| 抚顺市| 遂平县| 湛江市| 邵阳县| 三台县| 大荔县|