锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
AJAX鏄粖騫村垵鎵嶉棶涓栫殑鏂版妧鏈紝鏄疉synchronous JavaScript and XML鐨勭緝鍐欍傚畠鏄竴緇勫紑鍙慦eb搴旂敤紼嬪簭鐨勬妧鏈紝瀹冧嬌嫻忚鍣ㄥ彲浠ヤ負鐢ㄦ埛鎻愪緵鏇翠負鑷劧鐨勬祻瑙堜綋楠屻傛瘡褰撻渶瑕佹洿鏂版椂錛屽鎴風Web欏甸潰鐨勪慨鏀規槸寮傛鐨勫拰閫愭澧炲姞鐨勩傝繖鏍鳳紝AJAX鍦ㄦ彁浜eb欏甸潰鍐呭鏃跺ぇ澶ф彁楂樹簡鐢ㄦ埛鐣岄潰鐨勯熷害銆傚湪鍩轟簬AJAX鐨勫簲鐢ㄧ▼搴忎腑娌℃湁蹇呰闀挎椂闂寸瓑寰呮暣涓〉闈㈢殑鍒鋒柊銆傞〉闈腑闇瑕佹洿鏂扮殑閭i儴鍒嗘墠榪涜鏇存敼錛屽鏋滃彲鑳界殑璇濓紝鏇存柊鏄湪鏈湴瀹屾垚鐨勶紝騫朵笖鏄紓姝ョ殑銆?br />
J2ee鏄竴縐嶇敤鏉ュ紑鍙戝垎甯冨紡緋葷粺鐨勪綋緋葷粨鏋勩傚畠涓昏鏄敤Java綾誨紑鍙戜笟鍔″疄浣撱傞氳繃JSP鏉ヨ繛鎺ュ簲鐢ㄦ湇鍔″櫒銆?br />
鏈枃寮鍙戜竴涓粍緇囨満鏋勭鐞嗗皬緋葷粺錛岄氳繃榪欎釜瀹炰緥鏉ヤ粙緇嶅浣曠敤Ajax寮鍙慦EB搴旂敤紼嬪簭銆傛湰緋葷粺鍏鋒湁澧炲姞銆佷慨鏀廣佸垹闄ょ粍緇囨満鏋勭殑鍔熻兘銆傚悓鏃剁粰鏈烘瀯鍒嗛厤浜哄憳錛岃兘澧炲姞銆佷慨鏀廣佸垹闄や漢鍛樸?br />
浜屻?鐣岄潰璁捐
鏍戠粨鏋勬槸澶у杞歡緋葷粺涓父閲囩敤鐨勭粨鏋勫艦寮忋傜敱浜庢爲鍨嬬粨鏋勫眰嬈″垎鏄庛佷笂涓嬬駭鍏崇郴娓呮銆佷笖灞曞紑鏀剁緝琛ㄨ揪淇℃伅鏂逛究銆佺晫闈篃杈冪編瑙傦紝鎵浠ユ槸澶у鐑》浜庣敤姝ょ粨鏋勩傜粍緇囨満鏋勭鐞嗘槸涓鑸蔣浠跺熀鏈叿鏈夌殑銆傜粍緇囨満鏋勬槸鎸囧叕鍙哥殑緇勭粐緇撴瀯銆傞泦鍥㈠叕鍙稿彲鍖呮嫭鍒嗗叕瀛愬叕鍙革紝鍏徃涓嬮潰鍙堟湁縐戝銆傚憳宸ュ綊灞炰簬鎵鍦ㄧ殑鍏徃銆傜郴緇熻繍琛屽悗鐨勭晫闈㈠涓嬶細
鏍戠粨鏋勫尯1 | 緇勭粐緙栫爜鍖? |
浜哄憳綆$悊鍖? |
錛?TABLE border="1" width="100%" height="100%"錛?br /> 錛淭R錛?br /> 錛淭D rowspan="2"錛烇紲FONT face="瀹嬩綋"錛烇紲/FONT錛烇紲/TD錛?br /> 錛淭D錛烇紲/TD錛?br /> 錛?TR錛?br /> 錛淭R錛?br /> 錛淭D錛烇紲/TD錛?br /> 錛?TR錛?br /> 錛?TABLE錛?/td> |
錛渄iv id="divTree" style="width:100%; height:100%;background-color:#f5f5f5;border :1px solid Silver;overflow:auto;"錛?br /> 錛?div錛?/td> |
錛渄iv id="divContent" style="height:100%; overflow-y:auto;" width="100%"錛?br /> 錛渢able id="tbList" border="1" width="100%"錛?br /> 錛渢r seqNo="1"錛烇紲td錛?br /> 錛渢able border="1" width="100%"錛?br /> 錛渢r錛?br /> 錛渢d width="5%"錛烇紲input type="checkbox" value="on"錛烇紲/input錛?錛?td錛?br /> 錛渢d width="0%" style="display:none"錛?錛渋nput type="text" size="20"錛烇紲/input錛烇紲/td錛?br /> 錛渢d width="40%"錛烇紲input type="text" size="20"錛烇紲/input錛烇紲/td錛?br /> 錛渢d width="25%"錛?br /> 錛渟elect size="1" name="D1"錛?br /> 錛渙ption value="0"錛炵敺錛?option錛?br /> 錛渙ption selected="true" value="1"錛炲コ錛?option錛?br /> 錛?select錛?br /> 錛?td錛?br /> 錛?tr錛?br /> 錛?table錛? 錛?td錛烇紲/tr錛?br /> 錛?table錛?br /> 錛?div錛? |
涓夈?鍓嶇欏甸潰鐨勪富瑕佺紪鐮?br />
1. 鏍戠殑瀹炵幇
鍦╓EB涓婂疄鐜版爲緇撴瀯錛屽悓鏍鋒垜浠槸閫氳繃Ajax鏉ュ疄鐜扮殑銆傛爲涓婂彲浠ユ樉紺鴻嚜瀹氫箟鐨勫浘鏍囷紝鍙互鎻掑叆銆佸垹闄ゃ佺粨鐐廣傚茍涓旂粨鐐瑰彲浠繪剰縐誨姩銆傝繖閲屾垜浠笉閲嶇偣璁叉爲鐨勫疄鐜版妧鏈紝鎴戜滑宸茬粡灝佽濂戒簡錛屼綘鍙鎸夎姹傚幓鏀瑰姩灝辨槸浜嗐?
1) 閿帴鏍戝瀷鏂囦歡
鍦紲head錛炰笌錛?head錛炰箣闂撮敭鎺ユ垜浠殑涓庢爲鏈夊叧鐨勬枃浠? 浠g爜濡備笅錛?br />
錛渓ink rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css"錛?br /> 錛渟cript src="js/dhtmlXCommon.js"錛烇紲/script錛?br /> 錛渟cript src="js/dhtmlXTree.js"錛烇紲/script錛? |
錛渂ody onload="preLoadImages();doOnLoad();"錛?/td> |
//doOnLoad瀹炵幇瑁呰澆騫舵樉紺烘爲銆傝緗爲灞炴х瓑銆?br /> function doOnLoad(){ 銆OrgTree=new dhtmlXTreeObject(document.getElementById('divTree'),"100%","100%",0); 銆//dhtmlXTreeObject鏄爲瀵硅薄錛岄氳繃鏂板緩瀵硅薄錛屾寚瀹氭爲鏄劇ず鐨凞IV鍙畾涔夋爲銆?br /> 銆OrgTree.setImagePath("imgs/");//璁劇疆鏍戠殑鍥劇墖鎵鍦ㄤ綅緗?br /> 銆OrgTree.setDragHandler();//璁劇疆鏍戠粨鐐規嫋鍔?br /> 銆OrgTree.enableDragAndDrop(true) //璁劇疆鏍戠粨鐐規槸鍚﹀彲鎷栧姩 銆OrgTree.setDragHandler(myDragHandler); //璁劇疆鏍戠粨鐐規嫋鍔ㄦ椂鎵鎵ц鐨勬柟娉?br /> 銆OrgTree.setOnClickHandler(mySelectHandler); //璁劇疆鏍戝崟鍑繪椂鎵鎵ц鐨勬柟娉?br /> 銆//OrgTree.setXMLAutoLoading("Org.jsp");//瑁呰澆鏍戠粨鐐規暟鎹傛暟鎹潵婧愬Org.jsp鎵榪斿洖鐨刋ML鏍煎紡鐨勫瓧絎︿覆錛屾暟鎹槸鍔ㄦ佽杞斤紝涓斿綋灞曞紑鏃舵墠瑁呰澆銆?br /> 銆OrgTree.loadXML("root.xml?0");//瑁呰澆鏍戠粨鐐規暟鎹傛暟鎹潵婧恟oot.xml鏂囦歡錛屽茍涓斾粠xml鏂囦歡鐨処D鍙蜂負0澶勮鍙栨暟鎹?br /> 銆//OrgTree.loadXML("Org.jsp");//瑁呰澆鏍戠粨鐐規暟鎹傛暟鎹潵婧愬Org.jsp鎵榪斿洖鐨刋ML鏍煎紡鐨勫瓧絎︿覆,騫朵笖鏄竴嬈℃у叏閮ㄨ杞芥暟鎹? } //preLoadImages鏂規硶瀹炵幇鏍戞帶浠剁殑鍥炬爣瀹氫箟 function preLoadImages(){ 銆var imSrcAr = new Array("line1.gif","line2.gif","line3.gif","line4.gif","minus2.gif","minus3.gif", "minus4.gif","plus2.gif","plus3.gif","plus4.gif","book.gif","books_open.gif","books_close.gif", "magazine_open.gif","magazine_close.gif","tombs.gif","tombs_mag.gif","book_titel.gif") 銆var imAr = new Array(0); 銆for(var i=0;i錛渋mSrcAr.length;i++){ imAr[imAr.length] = new Image(); imAr[imAr.length-1].src = "imgs/"+imSrcAr[i] 銆} } |
聽緇勭粐綆$悊鐨勫疄鐜?br />
緇勭粐鍙互澧炲姞銆佸垹闄ゃ佺紪杈戙傚悓鏃跺綋閫夋嫨鏍戠粨鐐規椂搴旇鎶婄粍緇囨樉紺哄嚭鏉ヤ緵緙栬緫錛屾煡鐪嬨備負浜嗗疄鐜拌繖浜涘姛鑳斤紝浣犲彧瑕佹寜瑕佹眰鍘繪敼鍔ㄥ氨鏄簡銆?br />
1) 鍏ㄥ眬鍙橀噺鐨勫畾涔?br />
璁稿鍦版柟鎴戜滑瑕佺敤鍒頒竴浜涘叕鍏卞彉閲忥紝鎴戜滑鍦紲script錛炰笌錛?script錛炰箣闂村畾涔夊叏灞鍙橀噺, 浠g爜濡備笅錛?br />
var OrgTree = null; //緇勭粐鏍慏om var nextSeq = 0;//浜哄憳綆$悊鐨勯『搴忓彿錛堟祦姘村彿錛?br /> var personDom;//浜哄憳Dom var CurrNodeId;//褰撳墠緇撶偣Id |
2) 鍒濆鍖?br />
褰撻〉闈㈡墦寮鏃舵垜浠鎺т歡濂介偅閮ㄥ垎璇ユ樉紺猴紝閭i儴鍒嗚闅愯棌銆備笖瀵瑰叏灞鍙橀噺鐨勮祴鍊肩瓑,緇勭粐綾誨瀷瑁呰澆銆傚湪欏甸潰鐨勬枃妗f墦寮鏃惰杞借嚜瀹氫箟鏂規硶init錛堬級, init鏂規硶瀹炵幇鍒濆鍖栥?br />
錛渂ody onload="init();"錛?/td> |
init鏂規硶瀹炵幇濡備笅錛?br />
function init(){ 銆//瀹氫箟personDom涓轟竴涓猉MLDOM'瀵硅薄 銆personDom= new ActiveXObject('Microsoft.XMLDOM'); 銆personDom.async = false; 銆//瀹氫箟stylesheet涓轟竴涓猉MLDOM'瀵硅薄錛屼笖stylesheet涓簆ersonDom紜畾鏄劇ず椋庢牸 銆stylesheet = new ActiveXObject('Microsoft.XMLDOM'); 銆stylesheet.async = false; 銆stylesheet.load("addOrgPerson.xsl"); //瑁呰澆stylesheet鐨勯鏍煎畾涔夋枃浠?br /> 銆//瑁呰澆緇勭粐綾誨瀷鏁版嵁 銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 銆xmlhttp.open("POST","Org.jsp?mode=GetOrgType", false); 銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 銆xmlhttp.send(); 銆retXml=xmlhttp.responseText; 銆// alert(retXml); 銆//鎶婄粍緇囩被鍨嬫彃鍏ヤ笅鎷夊垪琛ㄦ帶浠朵腑 銆var OrgDoc = new ActiveXObject('Microsoft.XMLDOM'); 銆OrgDoc.async = false; 銆OrgDoc.loadXML(retXml); 銆var root = OrgDoc.documentElement; 銆oNodeList = root.childNodes; 銆txtType.options.length =oNodeList.length; 銆for (var i=0; i錛渙NodeList.length; i++) 銆{ Item = oNodeList.item(i); var OrgTypeId=Item.childNodes(0).text; var OrgTypeName=Item.childNodes(1).text; txtType.options[i].value=OrgTypeId; txtType.options[i].text=OrgTypeName; // txtType.options[0]. 銆} } |
3) 緙栧啓鏍戞嫋鍔ㄥ強閫夋嫨緇撶偣鐨勬柟娉?br />
// myDragHandler瀹炵幇鏍戠粨鐐規嫋鍔ㄦ椂閲嶆柊鎸囧畾鐖跺瓙鍏崇郴銆?br /> function myDragHandler(idFrom,idTo){ 銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 銆xmlhttp.open("POST","Org.jsp?mode=moveOrg&orgId=" + idFrom + "&newparentOrgId=" + idTo, false); 銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 銆xmlhttp.send(); 銆retXml=xmlhttp.OrgponseText; 銆return true; } // mySelectHandler瀹炵幇閫夋嫨鏍戠粨鐐瑰緋葷粺鐨勬帶鍒訛紝鍚屾椂鏄劇ず緇勭粐淇℃伅鍙婅緇勭粐涓嬬殑浜哄憳銆?br /> function mySelectHandler(id){ 銆tbOrg.style.display="block"; 銆divOrgMemo.style.display="none"; 銆divOrgInfo.style.display="none"; 銆if(id==1) 銆{ divOrgMemo.style.display="block"; div1.style.display="none"; div2.style.display="none"; div3.style.display="none"; divContent.style.display="none"; div5.style.display="none"; 銆} 銆else 銆{ divOrgInfo.style.display="block"; div1.style.display="block"; div2.style.display="block"; div3.style.display="block"; divContent.style.display="block"; div5.style.display="block"; 銆} 銆CurrNodeId=id; 銆//瑁呰澆緇勭粐淇℃伅騫舵樉紺哄湪緙栫爜鍜屽悕縐扮殑鏂囨湰鎺т歡涓娿? 銆loadOrg(id); 銆//瑁呰澆鏌愮粍緇囦笅浜哄憳淇℃伅 銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 銆xmlhttp.open("POST","Org.jsp?mode=GetPerson&orgId=" + id, false); 銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 銆xmlhttp.send(); 銆retXml=xmlhttp.responseText; 銆personDom.loadXML (retXml); 銆//緇欎漢鍛樹俊鎭殑姣忚鍔犱笂搴忓彿 銆for(var i=0; i錛減ersonDom.documentElement.childNodes.length; i++){ personDom.documentElement.childNodes[i].setAttribute("seqNo", nextSeq); nextSeq++; 銆} 銆//浜哄憳淇℃伅鏄劇ず鍦╠ivContent涓婇潰 銆divContent.innerHTML = personDom.transformNode(stylesheet); }; //瑁呰澆緇勭粐淇℃伅騫舵樉紺哄湪緙栫爜鍜屽悕縐扮殑鏂囨湰鎺т歡涓娿?br /> function loadOrg(OrgId){ 銆if(OrgId == null){ OrgId = OrgTree.getSelectedItemId(); 銆} 銆if(OrgId == ""){ tbOrg.style.display = "none"; return; 銆} 銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 銆xmlhttp.open("POST","Org.jsp?mode=loadOrg&OrgId=" + OrgId, false); 銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 銆xmlhttp.send(); 銆retXml=xmlhttp.responseText; 銆var OrgDoc = new ActiveXObject('Microsoft.XMLDOM'); 銆OrgDoc.async = false; 銆OrgDoc.loadXML(retXml); 銆if(OrgId != 1){ txtCode.value = OrgDoc.selectSingleNode("http://OrgCode").text; txtName.value = OrgDoc.selectSingleNode("http://OrgName").text; 銆} 銆tbOrg.style.display = "block"; } |
4) 寤虹珛緇勭粐
緇勭粐寤虹珛涓昏鏄氳繃璋冪敤XMLHTTP瀵硅薄鏉ュ疄鐜般傛垜浠富瑕佸浼氬浣曡皟鐢╔MLHTTP銆傜粍緇囧緩绔嬪簲璇ュ湪鍚庡彴瀹炵幇錛屾妸緇勭粐淇℃伅鎻掑叆鏁版嵁搴撲腑銆傝繖閲屾垜浠氳繃JSP鏉ュ疄鐜般傛垜浠殑Org.jsp 鏂囦歡涓湁涓猚reateOrg鏂規硶錛岃鏂規硶浼犻掍竴涓埗ID銆?br />
function createOrg(parentOrgId){ 銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 銆xmlhttp.open("POST","Org.jsp?mode=createOrg&parentOrgId=" + parentOrgId, false); 銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 銆xmlhttp.send(); 銆retXml=xmlhttp.responseText; 銆var orgId = (new Number(retXml)).toString(); 銆return orgId; } |
5) 鍒犻櫎緇勭粐
緇勭粐鍒犻櫎鍚屾牱鏄皟鐢∣rg.jsp 鏂囦歡涓殑deleteOrg鏂規硶鏉ュ疄鐜幫紝璇ユ柟娉曚紶閫掓墍鍒犻櫎鐨勭粨鐐笽D銆?br />function deleteOrg(){
銆var OrgId = OrgTree.getSelectedItemId();
銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
銆xmlhttp.open("POST","Org.jsp?mode=deleteOrg&OrgId=" + OrgId, false);
銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
銆xmlhttp.send();
}
6) 緙栬緫緇勭粐
緇勭粐淇敼鏄皟鐢∣rg.jsp 鏂囦歡涓殑modifyOrg鏂規硶鏉ュ疄鐜幫紝璇ユ柟娉曚紶閫掓墍淇敼鐨勭粨鐐笽D銆傚悓鏃朵慨鏀圭殑鏁版嵁閫氳繃鑷畾涔夌殑XML鏍煎紡鐨勫瓧絎︿覆浼犻?榪欐椂閫氳繃send瀛楃涓叉潵瀹炵幇銆備慨鏀瑰墠鏁版嵁涓寰嬭楠岃瘉鍏跺悎娉曟э紝騫舵彁紺洪敊璇俊鎭?br />
3. 浜哄憳綆$悊鐨勫疄鐜?br />function modifyOrg(){
銆if(OrgTree.getSelectedItemId() == ""){
return "N";
銆}
銆if(txtCode.value == ""){
alert("璇瘋緭鍏ョ紪鐮侊紒");
return "N";
銆}
銆if(txtName.value == ""){
alert("璇瘋緭鍏ュ悕縐幫紒");
return"N";
銆}
銆var OrgId = OrgTree.getSelectedItemId();
銆var OrgKind;
銆//alert(txtType.options[txtType.selectedIndex].value)
銆var strModify = "錛?xml version='1.0' encoding='gb2312'?錛? +
銆"錛渄ata錛? +
銆"錛淥rgCode錛烇紲![CDATA[" + txtCode.value + "]]錛烇紲/OrgCode錛? +
銆"錛淥rgName錛烇紲![CDATA[" + txtName.value + "]]錛烇紲/OrgName錛? +
銆"錛淥rgKind錛烇紲![CDATA[" + txtType.options[txtType.selectedIndex].value+ "]]錛烇紲/OrgKind錛? +
銆"錛?data錛?;
銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
銆xmlhttp.open("POST","Org.jsp?mode=modifyOrg&OrgId=" + OrgId, false);
銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
銆xmlhttp.send(strModify);
銆OrgTree.setItemText(OrgTree.getSelectedItemId(),txtName.value);
}
浜哄憳鍙互澧炲姞銆佸垹闄ゃ佺紪杈戙傚悓鏃跺綋閫夋嫨鏍戠粨鐐規椂搴旇鎶婁漢鍛樻樉紺哄嚭鏉ヤ緵緙栬緫銆佹煡鐪?.....
1) 澧炲姞浜哄憳
浜哄憳澧炲姞瀹炵幇鐨勫師鐞嗘槸鍦╬ersonDom涓姞鍏ョ粨鐐筽eorsone錛岃緇撶偣鐩稿綋浜庤〃鐨勪竴琛岋紝璁劇疆灞炴с傚悓鏃跺湪peorsone涓笉緇у湴鍔犲叆鍏跺畠緇撶偣錛屼唬琛ㄦ暟鎹簱鐨勫瓧孌碉紝涓斿繀欏諱笌XLT鏂囦歡鐨勬爣鍙峰悓鍚嶃傝繖浜涚粨鐐圭浉褰撹琛岀殑鍒椼傛渶鍚庡湪琛ㄤ腑鎻掑叆涓琛岋紝琛屼笂鎻掑叆涓鍒楋紝騫舵樉紺轟箣銆?br />function addPerson(){
銆var seqNo = nextSeq;
銆nextSeq++;
銆var peorsonNode = personDom.createNode("1", "peorsone","");
銆peorsonNode.setAttribute("isNew", "Y");
銆peorsonNode.setAttribute("isDelete", "N");
銆peorsonNode.setAttribute("seqNo", seqNo);
銆personDom.documentElement.appendChild(peorsonNode);
銆var PersonId= personDom.createNode("1", "personId", "");
銆peorsonNode.appendChild(PersonId);
銆var personCode= personDom.createNode("1", "personCode", "");
銆peorsonNode.appendChild(personCode);
銆var PersonName= personDom.createNode("1", "personName", "");
銆peorsonNode.appendChild(PersonName);
銆var Sex= personDom.createNode("1", "sex", "");
銆peorsonNode.appendChild(Sex);
銆var tr = tbList.insertRow(tbList.rows.length);
銆tr.setAttribute("seqNo", seqNo);
銆var td = tr.insertCell(0);
銆td.innerHTML = peorsonNode.transformNode(stylesheet);
}
2) 鍒犻櫎浜哄憳
浜哄憳鍒犻櫎鍚屾牱鏄皟鐢∣rg.jsp 鏂囦歡涓殑deletePerson鏂規硶鏉ュ疄鐜幫紝璇ユ柟娉曚紶閫掓墍鍒犻櫎鐨勪漢鍛業D銆傚浣曠‘瀹氫漢鍛業D鏄氳繃璇誨彇闅愯棌鐨処D錛屽茍鎵弿鏁翠釜琛紝鐪嬮偅浜涜閫変腑銆傝繖閲屾垜浠娉ㄦ剰鏄彁渚涘欏歸夋嫨鐨勩?br />function deletePerson(){
銆for(var i=0; i錛渢bList.rows.length; i++){
var row=tbList.rows[i].cells[0].children[0].rows[0];
if(row.cells[0].children[0].checked)
{
銆var personId=row.cells[1].children[0].value;
銆if(personId錛?)
銆{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","Org.jsp?mode=deletePerson&personId=" + personId, false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send();
銆}
銆tbList.deleteRow(i);
銆i--;
}
銆}
}
3) 緙栬緫浜哄憳
浜哄憳淇敼鎴戜滑瑕佸垽瀹氬摢浜涜琚慨鏀逛簡銆傚垰澧炲姞浣嗘病淇濆瓨鐨勮搴旇鏄柊澧炶屼笉鏄慨鏀圭殑銆?br />function save(){
銆if( modifyOrg()=="N")
銆{
return;
銆}
銆for(var i=0; i錛渢bList.rows.length; i++)
銆{
var row=tbList.rows[i].cells[0].children[0].rows[0];
var personId=row.cells[1].children[0].value;
var seqNo = tbList.rows[i].getAttribute("seqNo");
var staffNode = personDom.selectSingleNode("http://peorsone[@seqNo='" + seqNo + "']");
var personCode=row.cells[2].children[0].value;
var personName=row.cells[3].children[0].value;
var sex=row.cells[4].children[0].value; //alert(staffN;ode );
if(staffNode.getAttribute("isNew") == "Y")
{
銆createPerson(CurrNodeId,personCode,personName,sex);
}
else
{
銆var strXML = "錛?xml version='1.0' encoding='gb2312'?錛? +
"錛渄ata錛? +
"錛減ersonCode錛烇紲![CDATA[" + personCode+ "]]錛烇紲/personCode錛? +
"錛減ersonName錛烇紲![CDATA[" + personName + "]]錛烇紲/personName錛? +
"錛渟ex錛烇紲![CDATA[" + sex+ "]]錛烇紲/sex錛? +
"錛減ersonId錛烇紲![CDATA[" + personId+ "]]錛烇紲/personId錛? +
"錛?data錛?;
銆//alert(strXML );
銆var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
銆xmlhttp.open("POST","Org.jsp?mode=modifyPerson", false);
銆xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
銆xmlhttp.send(strXML );
}
銆}
}
鍥涖?XML涓嶺SL鏂囦歡璁捐
XML鏄鍙墿灞曠殑鏍囪璇█錛屽畠鍏鋒湁寮鏀劇殑銆佸彲鎵╁睍鐨勩佸彲鑷弿榪扮殑璇█緇撴瀯錛屽畠宸茬粡鎴愪負緗戜笂鏁版嵁鍜屾枃妗d紶杈撶殑鏍囧噯銆俋SLT鐨勭洰鐨勬槸灝嗕俊鎭唴瀹逛笌 Web 鏄劇ず鍒嗙錛孒TML 閫氳繃鎸夋娊璞℃蹇碉紙濡傛钀姐侀噸鐐瑰拰緙栧彿鍒楄〃錛夊畾涔夋樉紺烘潵瀹炵幇璁懼鐙珛鎬с俋SLT鐢ㄦ潵鍏蜂綋鏄劇ず鎺т歡錛岃緗帶浠墮鏍箋?br />
Ajax涓昏浣跨敤XML鍜孹SLT榪涜鏁版嵁浜ゆ崲涓庡鐞嗐?br />
1. 鏍戜俊鎭殑XML鏂囦歡(瑙乺oot.xml鏂囦歡)
XML鏄爣璁拌璦錛屽厓绱犲繀欏繪垚瀵瑰嚭鐜般傛爲緇撴瀯涓互tree涓烘牴緇撶偣錛屼互item涓虹粨鐐逛綋錛屽睘鎬ext鎸囧嚭緇撶偣鎵鏄劇ず鐨勬枃鏈紝id鎸囧嚭鍞竴鐨勬墍鏍囪瘑鍙楓?br />
錛?xml version='1.0' encoding='gb2312'?錛?br /> 錛渢ree id="0"錛?br /> 錛渋tem child="1" text="緇勭粐" id="1" 錛?br /> 錛?item錛? 錛?tree錛?/td> |
錛?xml version="1.0" encoding="gb2312"?錛?br /> //榪欐槸瀹氫箟xml鏂囦歡鐨勯琛屻傜敤鏉ユ寚鏄庣増鏈強瀛楃闆?br /> 錛渪sl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" language="JavaScript"錛?br /> //榪欓噷瀹氫箟浜唖tylesheet 鍏冪礌銆傚茍鎸囧嚭鍏跺浗闄呭懡鍚嶇殑緇勭粐鍙婅璦銆? 錛渪sl:template match="/"錛?br /> 錛渪sl:apply-templates select="peorsones"/錛?br /> 錛?xsl:template錛?br /> //涓婇潰鏄尮閰嶇殑瑙勫垯銆?/"琛ㄧず浠庢牴緇撳紑濮嬪幓鍖歸厤銆傚尮閰嶅埌涓嬮潰鐨刾eorsones鏍囪銆傝繖鏄鍒欒〃杈懼紡鏈夊叧鐨勫闂傛垜浠彧瑕佺悊瑙e氨鍙互銆?br /> 錛渪sl:template match="peorsones"錛?br /> //褰撳尮閰嶄笂peorsones鏃舵墍瑕佸仛鐨勪簨鎯呫?br /> 錛渢able id="tbList" border="1" width="100%"錛?br /> //瀹氫箟涓涓猧d涓?tbList鐨勮〃鏍箋傛琛ㄦ牸鏄樉紺哄湪WEB涓婄殑 錛渪sl:for-each select="peorsone"錛?br /> //寰幆鍖歸厤peorsone 錛渢r錛?br /> //瀹氫箟tbList琛ㄦ牸鐨勪竴琛岋紝騫跺湪琛屼笂澧炲姞涓涓彨seqNo鐨勫睘鎬у悕錛屽間負鍖歸厤鍒扮殑seqNo錛堝簭鍙鳳級 錛渪sl:attribute name="seqNo"錛烇紲xsl:value-of select="@seqNo"/錛烇紲/xsl:attribute錛?br /> 錛渢d錛?br /> //瀹氫箟琛屼笂鐨勪竴鍒楋紝鍒楀張鍘誨尮閰?br /> 錛渪sl:apply-templates select="."/錛?br /> 錛?td錛?br /> 錛?tr錛?br /> 錛?xsl:for-each錛? 錛?table錛?br /> 錛?xsl:template錛?br /> 錛渪sl:template match="peorsone"錛?br /> 錛渢able border="1" width="100%"錛?br /> 錛渢r錛?br /> //瀹氫箟瀹戒負5%鐨勪竴鍒楋紝鍦ㄨ鍒椾笂鎻掑叆涓涓猚heckbox鎺т歡 錛渢d width="5%"錛?br /> 錛渋nput type="checkbox" value="on" size="10"錛烇紲/input錛?br /> 錛?td錛?br /> //瀹氫箟涓涓笉鏄劇ず鐨勫垪錛屽湪璇ュ垪涓婃彃鍏ヤ竴涓猼ext鎺т歡錛宼ext鐨勫間負鍖歸厤鍒扮殑personId錛堜漢鍛業d錛?br /> 錛渢d style="display:none"錛?br /> 錛渋nput type="text" size="25"錛?br /> 錛渪sl:attribute name="value"錛烇紲xsl:value-of select="personId"/錛烇紲/xsl:attribute錛?br /> 錛?input錛? 錛?td錛?br /> 錛渢d width="30%"錛? 錛渋nput type="text" size="20"錛? 錛渪sl:attribute name="value"錛烇紲xsl:value-of select="personCode"/錛烇紲/xsl:attribute錛? 錛?input錛? 錛?td錛? 錛渢d width="40%"錛? 錛渋nput type="text" size="40"錛?br /> 錛渪sl:attributename="value"錛烇紲xsl:value-of select="personName"/錛烇紲/xsl:attribute錛? 錛?input錛?br /> 錛?td錛?br /> //瀹氫箟涓涓獁idth涓?8%鐨勫垪錛屽湪璇ュ垪涓婃彃鍏ヤ竴涓笅鎷夊垪琛╯elect 鎺т歡錛宻elect鐨勫煎鏋滃尮閰嶅埌涓?鏃跺垯涓?鐢?錛?鏃跺垯涓?濂? 錛渢d width="28%"錛?br /> 錛渟elect size="1"錛?br /> 錛渙ption value="0"錛?br /> 錛渪sl:if test=".[sex=0]"錛?br /> 錛渪sl:attribute name="selected"錛瀟rue錛?xsl:attribute錛?br /> 錛?xsl:if錛?br /> 鐢?br /> 錛?option錛?br /> 錛渙ption value="1"錛?br /> 錛渪sl:if test=".[sex=1]"錛?br /> 錛渪sl:attribute name="selected"錛瀟rue錛?xsl:attribute錛?br /> 錛?xsl:if錛? 濂籌紲/option錛?br /> 錛?select錛?br /> 錛?td錛?br /> //瀹氫箟涓鍒楋紝鍦ㄨ鍒椾笂鎻掑叆涓涓猙utton鎺т歡錛宱nclick 浜嬩歡涓鴻嚜瀹氫箟鐨勬柟娉曪紝璇ユ柟娉曚紶閫掑綋鍓嶅崟鍑葷殑鎸夌航 錛渢d width="*"錛? 錛渂utton onclick="openPersonRolePage(this)" style="width: 36; height: 21"錛炶鑹詫紲/button錛?br /> 錛?td錛?br /> 錛?tr錛?br /> 錛?table錛?br /> 錛?xsl:template錛?br /> 錛?xsl:stylesheet錛?/td> |
浜斻?鏁版嵁鎺ュ彛鐨勫疄鐜?/strong>錛堣Org.jpg鏂囦歡錛?br />
Org.JSP鏂囦歡鐢ㄦ潵鍦ㄦ湇鍔″櫒涓婅繍琛孞ava鐨勭被涓庡墠鍙皐eb欏典箣闂存灦璧蜂竴搴фˉ銆傚彇鍒頒腑闂翠歡鐨勬帴鍙d綔鐢ㄣ?br />
榪欓噷鍒嗘瀽閮ㄥ垎浠g爜錛?br />
錛?@ page contentType="text/html; charset=GBK" %錛?br /> 錛?@ page import="java.sql.*" %錛?br /> 錛?@ page import="javax.naming.*" %錛?br /> 錛?@ page import="javax.sql.*" %錛?br /> 錛?@ page import="tool.*" %錛?br /> 錛?@ page import="orgNew.*" %錛?br /> 錛?@ page import="org.w3c.dom.*" %錛?br /> //涓婇潰涓昏鏄紩鐢ㄤ竴浜沯ava綾?br /> 錛? try{ 銆//request.setCharacterEncoding("GBK"); 銆Document doc = XmlTool.createDocumentFromRequest(request); 銆//寤虹珛web闈㈡枃妗h姹傜殑鏂囨。瀵硅薄 銆Connection conn = ConnTool.getConnectionFromPool(); 銆//鑾峰彇璇鋒眰鐨勬柟娉曞悕 銆String mode=request.getParameter("mode"); 銆//out.println("ccc"); 銆//濡傛灉鏂規硶涓病鏈夊叾瀹冨弬鏁板垯璇誨彇緇勭粐鏍戞暟鎹?br /> 銆if(mode == null){ /* int OrgId = Integer.parseInt(request.getParameter("id")); String str = orgManager.getChildOrg(OrgId, conn); out.println(str); */ 銆String str = orgManager.getTree(conn); 銆//out.println(str); 銆out.println(str); }else if(mode.equals("createOrg")){ 銆//濡傛灉鏄痗reateOrg鏂規硶鍒欏緩绔嬩竴涓粍緇?br /> 銆int parentOrgId = Integer.parseInt(request.getParameter("parentOrgId")); 銆//鍙栧嚭浼犻掓潵鐨勭涓涓弬鏁皃arentOrgId 銆int OrgId = orgManager.createOrg(parentOrgId, conn); 銆//璋冪敤orgManager 綾葷殑createOrg鏂規硶鏉ュ緩绔嬩竴涓粍緇?br /> 銆out.println(OrgId); 銆//榪斿洖緇撴灉 } conn.close(); } catch(Exception e){ 銆e.printStackTrace(); } %錛?/td> |
鍏?鍚庡彴鏁版嵁鐨勫疄鐜?/b>
1. 鏁版嵁緇撴瀯鐨勫畾涔?br />
榪欓噷錛屾垜浠富瑕佹湁涓変釜琛ㄣ備竴涓槸緇勭粐緇撴瀯琛紝涓涓槸浜哄憳琛╬erson錛屼竴涓粍緇囦漢鍛樺叧鑱旇〃orgPerson銆傜粍緇囩粨鏋勮〃鏈塐rgCode錛堢粍緇囦唬鐮侊級銆丱rgName錛堢粍緇囧悕縐幫級銆乷rgId錛堢粍緇嘔d錛? parentOrgId錛堢埗Id錛夈備漢鍛樿〃鏈塸ersonCode錛堜漢鍛樹唬鐮侊級銆乸ersonName錛堜漢鍛樺悕縐幫級, sex錛堟у埆錛夈乸ersonId錛堜漢鍛業d錛夈俹rgPerson琛ㄦ湁orgId, personId銆?br />
2. 鏁版嵁搴撶殑榪炴帴
WEB搴旂敤紼嬪簭甯哥敤MySQL浣滃悗鍙版暟鎹簱錛岃繖鏄洜涓篗ySQL綆鍗曘侀珮鏁堛傝繖閲屾垜浠篃鐢∕ySQL浣滀負鏁版嵁搴撱侸ava涓敤jdbc榪炴帴鏁版嵁搴撱備笅闈㈡槸榪炴帴鏁版嵁搴撶殑CODE錛?br />
public static Connection getConnectionFromPool() throws Exception { 銆Context ctx = new InitialContext(); 銆DataSource ds = (DataSource) ctx.lookup("java:/erpds"); 銆return ds.getConnection(); } /** * 鍙栨暟鎹簱閾炬帴瀵硅薄 * @return Connection 鏁版嵁搴撻摼鎺ュ璞?br /> * @throws Exception */ /* public static Connection getDirectConnection() throws Exception { 銆Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); 銆String url = "jdbc:sybase:Tds:19.64.13.16:4100/wydb?charset=iso_1"; 銆String user = "sa"; 銆String password = "2860008"; 銆Connection conn = DriverManager.getConnection(url, user, password); 銆return conn; } */ |
. 涓氬姟閫昏緫灞傜殑瀹炵幇
鍚庡彴寮鍙戞垜浠敤Java綾繪潵瀹炵幇銆傝繖閲屾垜浠紑鍙戜簡涓涓猳rgNew鍖咃紝綾誨悕涓簅rgManager銆傛綾誨皝瑁呬簡涓庢暟鎹簱鎿嶄綔鏈夊叧鐨勬柟娉曘傞氳繃main鍙皟璇曠▼搴忕殑姝g‘鎬с?br />
榪欓噷緇欏嚭浜嗘柊澧炲姞涓涓粍緇囩殑鍏ㄩ儴浠g爜鍜岄氳繃XML鍙栧緱鏍戠粨鏋勪俊鎭殑浠g爜錛屾爲緇撴瀯閫氳繃閫掑綊瀹炵幇銆?br />
package orgNew;// Java綾繪墍鎵撶殑鍖?br /> import tool.*; import java.sql.*; import java.util.*; // 寮曠敤Java綾葷殑 public class orgManager { 銆public orgManager() { } 銆public static void main(String[] args) throws Exception { Connection conn = tool.ConnTool.getDirectConnection();// 寮曠敤鏁版嵁璁塊棶綾?br /> conn.setAutoCommit(false); orgManager orgManager1 = new orgManager(); orgManager1.createOrg(0, conn); //嫻嬭瘯寤虹珛緇勭粐鏄惁姝g‘ 銆} 銆//寤虹珛涓涓粍緇?br /> 銆public static int createOrg(int parentOrgId, Connection conn) throws 銆Exception { String sql = "insert into Org (OrgName, parentOrgId) values('鏂扮粍緇?, ?)"; PreparedStatement pstat = conn.prepareStatement(sql); pstat.setInt(1, parentOrgId); pstat.executeUpdate(); pstat.close(); Statement stat = conn.createStatement(); String sql2 = "select max(OrgId) from Org"; ResultSet rs = stat.executeQuery(sql2); rs.next(); int OrgId = rs.getInt(1); rs.close(); stat.close(); System.out.println(OrgId); return OrgId; 銆} } //閫氳繃閫掑綊寰楀埌緇勭粐淇℃伅鐨刋ML鏍煎紡鐨勬暟鎹?br /> public static String getTree(Connection conn) throws Exception { 銆StringBuffer ret = new StringBuffer();//瀹氫箟鍙紦鍐茬殑瀛楃嫻?br /> 銆ret.append("錛?xml version='1.0' encoding='gb2312'?錛烇紲tree id='0'錛?);//瀹氫箟XML鏍煎紡鐨勫ご淇℃伅 銆ret.append(" 錛渋tem child='1' text='緇勭粐' id='1' 錛?);//鎻掑叆緇撶偣浣撱傛敞鏍戠粨鐐逛互item涓烘爣璁? 銆ret.append(getChildTree(1, conn)); 銆ret.append("錛?item錛?);//緇撶偣浣撶粨鏉熸爣璁?br /> 銆ret.append("錛?tree錛?);//鏍戠粨鏉熸爣璁?br /> 銆return ret.toString();//榪斿洖瀛楃嫻?br /> } public static String getChildTree(int OrgId, Connection conn) throws Exception { 銆StringBuffer ret = new StringBuffer(); 銆String sql = "select a.OrgId, a.OrgName, a.OrgCode,count(b.parentOrgId) from Org a " + "left join Org b on a.OrgId = b.parentOrgId " + "where a.parentOrgId = ? " + "group by a.OrgId, a.OrgName"; 銆PreparedStatement pstat = conn.prepareStatement(sql); 銆pstat.setInt(1, OrgId); 銆ResultSet rs = pstat.executeQuery(); 銆while (rs.next()) { int childOrgId = rs.getInt(1); String childOrgName = rs.getString(2); String childOrgCode = rs.getString(3); if (childOrgCode == null) { 銆childOrgCode = " "; } if (childOrgName == null) { 銆childOrgName = "鏂扮粍緇?; } int childCount = rs.getInt(3); if (childCount 錛?0) { 銆childCount = 1; } ret.append("錛渋tem child='" + childCount + "' text='" + childOrgName + "' id='" +childOrgId + "' code='"+childOrgCode+"'錛?); ret.append(getChildTree(childOrgId, conn)); ret.append("錛?item錛?); 銆} 銆rs.close(); 銆pstat.close(); 銆return ret.toString(); } |
鍏跺畠浠g爜瑙乷rgManager.java鏂囦歡銆?br />
涓冦?鎬葷粨
鏈枃浠墮氳繃涓涓疄渚嬪叏闈粙緇嶄簡Ajax寮鍙戠殑鍚勪釜緇嗚妭銆傞氳繃涓嶫2ee鐨勭粨鍚堟潵瀹炵幇涓夊眰鍒嗗竷寮忓紑鍙戠殑灞傛鍒掑垎錛屽悗鍙頒笌鍓嶇鐨勮皟鐢ㄣ傛暟鎹殑璇誨彇銆佽闂強灞曠幇銆?
閫氳繃榪欎釜瀹炰緥錛屾垜浠彲瑙侊紝Ajax浣縒EB涓殑鐣岄潰涓庡簲鐢ㄥ垎紱匯傛暟鎹笌鍛堢幇鍒嗙鐨勫垎紱伙紝鏈夊埄浜庡垎宸ュ悎浣溿佸噺灝戦潪鎶鏈漢鍛樺欏甸潰鐨勪慨鏀歸犳垚鐨刉EB搴旂敤紼嬪簭閿欒銆佹彁楂樻晥鐜囥佷篃鏇村姞閫傜敤浜庣幇鍦ㄧ殑鍙戝竷緋葷粺銆備篃鍙互鎶婁互鍓嶇殑涓浜涙湇鍔″櫒璐熸媴鐨勫伐浣滆漿瀚佸埌瀹㈡埛绔紝鍒╀簬瀹㈡埛绔棽緗殑澶勭悊鑳藉姏鏉ュ鐞嗐?br />
Ajax鏄紶緇焀EB搴旂敤紼嬪簭鐨勪竴涓漿鍙樸備互鍓嶆槸鏈嶅姟鍣ㄦ瘡嬈$敓鎴怘TML欏甸潰騫惰繑鍥炵粰瀹㈡埛绔紙嫻忚鍣級銆侫jax鐞嗗康鐨勫嚭鐜幫紝鎻紑浜嗘棤鍒鋒柊鏇存柊欏甸潰鏃朵唬鐨勫簭騫曪紝騫舵湁浠f浛浼犵粺web寮鍙戜腑閲囩敤form(琛ㄥ崟)閫掍氦鏂瑰紡鏇存柊web欏甸潰鐨勮秼鍔匡紝鍙互綆楁槸涓涓噷紼嬬銆?br />
鎬諱箣錛孉jax閫傜敤浜庝氦浜掕緝澶氾紝棰戠箒璇繪暟鎹紝鏁版嵁鍒嗙被鑹ソ鐨刉EB搴旂敤銆?/p>