`
zpx138332
  • 浏览: 46163 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类

Ajax实现增删改查

阅读更多

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>My JSP 'index.jsp' starting page</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">

		<script src="./js/util.js" type="text/javascript">
</script>
		<script type="text/javascript">

window.onload = function() {
	$("addemp").style.display = "none";
	$("upemp").style.display="none";
}

function addEmp() {
    $("upemp").style.display="none";
	$("addemp").style.display = "block";
	//获取xhr对象
	var xhr = getXhr();
	//封装请求信息
	xhr.open("get", "./listDept.do", true);
	//发送请求
	xhr.send();
	//根据服务器端传递xhr.readyState触发的事件进行处理
	xhr.onreadystatechange = function() {
		//根据readyState是否处理完毕,status服务是否返回成功
		if (xhr.readyState == 4 && xhr.status == 200) {
			//获得xml的document对象
			var doc = xhr.responseXML;
			
			listDepts(doc,"");
		}
	}

}

function listDepts(doc,value){
//获取根节点
			var root = doc.documentElement;
			//获取根节点的子节点
			var depts = root.childNodes;
			
			//获取HTML dom 对象
			var deptnos = document.getElementById("deptno");
			//遍历
			for(var i=0;i<depts.length;i++){
			  
			  //判读是否是元素节点,目的是兼容各个浏览器
			  if(depts[i].nodeType == 1){
			    var dptoption = document.createElement("option");
			    var eles = depts[i].childNodes;
			    for(var j=0;j<eles.length;j++){
			       if(eles[j].nodeType ==1){
			         if(j==0){
			           if(value==eles[j].firstChild.nodeValue){
			            dptoption.setAttribute("selected",true);
			           }
			           dptoption.setAttribute("value",eles[j].firstChild.nodeValue);
			         }else if(j==1){
			           dptoption.appendChild(document.createTextNode(eles[j].firstChild.nodeValue));
			         }   
			       }
			           
			    }
			    deptnos.appendChild(dptoption);
			  }
			}
			

}
function selectEmp() {
	//获取xhr对象
	var xhr = getXhr();
	//封装请求信息
	xhr.open("get", "./listEmp.do", true);
	//发送请求
	xhr.send();
	//根据服务器端传递xhr.readyState触发的事件进行处理
	xhr.onreadystatechange = function() {
		//根据readyState是否处理完毕,status服务是否返回成功
		if (xhr.readyState == 4 && xhr.status == 200) {
			//获得xml的document对象
			var doc = xhr.responseXML;
			listEmps(doc);

		}
	}
}

function insertEmp() {

	//获取xhr对象
	var xhr = getXhr();
	//封装请求信息
	xhr.open("post", "./addEmp.do", true);
	var empno = $("eno").value;
	var ename = $("ename").value;
	var mgr = $("mgr").value;
	var hiredate = $("hiredate").value;
	var job = $("job").value;
	var sal = $("sal").value;
	var comm = $("comm").value;
	var deptno = $("deptno").value;
	var params = "empno=" + empno + "&ename=" + ename + "&mgr=" + mgr
			+ "&hiredate=" + hiredate + "&job=" + job + "&sal=" + sal
			+ "&comm=" + comm + "&deptno=" + deptno;
	//发送请求
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(params);
	xhr.onreadystatechange = function() {
		//根据readyState是否处理完毕,status服务是否返回成功
		if (xhr.readyState == 4 && xhr.status == 200) {
			//获得xml的document对象
			var doc = xhr.responseXML;
			listEmps(doc);
		}
	}
}

function listEmps(doc) {
	//获取xml文件的跟标签
	var root = doc.documentElement;
	//获取跟标签的所有子节点
	var emps = root.childNodes;
	//获取tbody对象
	var listemps = document.getElementById("listemps");
	
	listemps.innerHTML = "";
	for ( var i = 0; i < emps.length; i++) {
	
		//判断该节点是否是元素节点,目的兼容IE firefox opera 浏览器
		if (emps[i].nodeType == 1) {
		    /**创建删除修改按钮*/
		   	var delbtn = document.createElement("input");
			var uptbtn = document.createElement("input");
			
			delbtn.setAttribute("type","button");
			uptbtn.setAttribute("type","button");
			delbtn.setAttribute("value","删除");
			uptbtn.setAttribute("value","修改");
			
			
		
			var emptr = document.createElement("tr");

			//获取该节点下面的所有子节点
			var empcs = emps[i].childNodes;
			for ( var j = 0; j < empcs.length; j++) {
				var emptd = document.createElement("td");
				//判断该节点是否是元素节点,目的兼容IE firefox opera 浏览器
				if (empcs[j].nodeType == 1) {
					emptd.appendChild(document
							.createTextNode(empcs[j].firstChild.nodeValue));
				    
					emptr.appendChild(emptd);
				}
			
			}
			var dutd = document.createElement("td");
			
			dutd.appendChild(delbtn);
			dutd.appendChild(uptbtn);
			
			/**员工删除操作*/
			delbtn.onclick = function (){
			  var empno = this.parentNode.parentNode.firstChild.innerHTML;
			 //获取xhr对象
			 var xhr = getXhr();
			 //封装请求信息
			 xhr.open("get", "./delEmp.do?empno="+empno, true);
			 //发送请求
			 xhr.send();
			 //根据服务器端传递xhr.readyState触发的事件进行处理
			xhr.onreadystatechange = function() {
				//根据readyState是否处理完毕,status服务是否返回成功
				if (xhr.readyState == 4 && xhr.status == 200) {
					//获得xml的document对象
					var doc = xhr.responseXML;
					listEmps(doc);
		
				}
			}
			 
			
			}
			/**员工修改操作*/
			uptbtn.onclick = function(){
			  $("addemp").style.display = "block";
			  $("iemp").style.display="none";
			  $("upemp").style.display="block";
			  
			  var emp = this.parentNode.parentNode;
			  var eles = emp.childNodes;
			  for(var i=0;i<eles.length-1;i++){
			  
			     if(eles[i].nodeType==1){
			        switch(i){
			          case 0:
			            $("eno").value=eles[i].innerHTML;
			          break;
			          case 1:
			           $("ename").value=eles[i].innerHTML;
			          break;
			          case 2:
			           $("job").value=eles[i].innerHTML;
			          break;
			          case 3:
			           $("hiredate").value=eles[i].innerHTML;
			          break;
			          case 4:
			           $("mgr").value=eles[i].innerHTML;
			          break;
			          case 5:
			           $("sal").value=eles[i].innerHTML;
			          break;
			          case 6:
			           $("comm").value=eles[i].innerHTML;
			          break;
			          case 7:
			          var deptno = eles[i].innerHTML;
			  
			             //获取xhr对象
						var xhr = getXhr();
						//封装请求信息
						xhr.open("get", "./listDept.do", true);
						//发送请求
						xhr.send();
						//根据服务器端传递xhr.readyState触发的事件进行处理
						xhr.onreadystatechange = function() {
							//根据readyState是否处理完毕,status服务是否返回成功
							if (xhr.readyState == 4 && xhr.status == 200) {
								//获得xml的document对象
								var doc = xhr.responseXML;
								listDepts(doc,deptno);
							}
						}
			          
			          break;
			        }
			     }
			  }
			}
					
			emptr.appendChild(dutd);
			listemps.appendChild(emptr);
		}

	}

}

function updateEmp(){
   //获取xhr对象
	var xhr = getXhr();
	//封装请求信息
	xhr.open("post", "./updateEmp.do", true);
	var empno = $("eno").value;
	var ename = $("ename").value;
	var mgr = $("mgr").value;
	var hiredate = $("hiredate").value;
	var job = $("job").value;
	var sal = $("sal").value;
	var comm = $("comm").value;
	var deptno = $("deptno").value;
	var params = "empno=" + empno + "&ename=" + ename + "&mgr=" + mgr
			+ "&hiredate=" + hiredate + "&job=" + job + "&sal=" + sal
			+ "&comm=" + comm + "&deptno=" + deptno;
	//发送请求
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(params);
	xhr.onreadystatechange = function() {
		//根据readyState是否处理完毕,status服务是否返回成功
		if (xhr.readyState == 4 && xhr.status == 200) {
			//获得xml的document对象
			var doc = xhr.responseXML;
			listEmps(doc);
		}
	}
}
</script>
	</head>

	<body>
		<h1>
			&nbsp;用户查询的请求
		</h1>
		<input type="button" value="查询所有用户" onclick="selectEmp()" />
		<input type="button" value="添加用户" onclick="addEmp()" />

		<div id="content">
			<table border="1px" cellpadding="0" cellspacing="0">
				<caption>
					员工信息表
				</caption>
				<thead>
					<tr>
						<th>
							编号
						</th>
						<th>
							姓名
						</th>
						<th>
							岗位
						</th>
						<th>
							入职时间
						</th>
						<th>
							领导
						</th>
						<th>
							薪水
						</th>
						<th>
							奖金
						</th>
						<th>
							部门
						</th>
						<th>
						  操作
						</th>
					</tr>
				</thead>
				<tbody id="listemps">

				</tbody>
			</table>
		</div>
		<br />
		<br />
		<br />
		<br />

		<div id="addemp">

			<span> 员工编号: <input type="text" name="empno" id="eno" /> <br />
				员工姓名:<input type="text" name="ename" id="ename" /> <br /> 岗位:<input
					type="text" name="job" id="job" /> <br /> 员工入职日期:<input type=text
					name="hiredate" id="hiredate" /> <input type="button" value="选择日期"
					onclick="showCalendar(this,document.all.hiredate)" /> </span>
			<br />
			<span> 领导:<input type="text" name="mgr" id="mgr" /> <br />
				薪水:<input type="text" name="sal" id="sal" />
				<br /> 奖金:<input type="text" name="comm" id="comm" /> <br /> 
				部门:<select name ="deptno" id="deptno">
				      <option value="10">请选择部门</option>
				    </select>
			 </span>
			<span id="iemp"> 
			<input type="button" value="添加" onclick="insertEmp()" />
			</span>
			<span id="upemp">
				<input type="button" value="修改" onclick="updateEmp()" />
			</span>

		</div>

	</body>
</html>

nction $(id) {
	return document.getElementById(id);
}

function getXhr() {
	var xhr
	try {
		xhr = new XMLHttpRequest();
	} catch (err) {
		try {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (er) {
			alert("不支持ajax技术");
		}
	}
	
	return xhr;
}
 

 

 

分享到:
评论
1 楼 zpx138332 2011-03-25  

相关推荐

    Ajax实现增删改查的demo

    在本"Ajax实现增删改查的demo"中,我们将探讨如何利用Ajax技术来实现数据库数据的基本操作:增加(Add)、删除(Delete)、修改(Update)和查询(Query)。 **一、Ajax的基础原理** 1. **创建XMLHttpRequest对象*...

    js实现Ajax效果的增删改查

    在这个“js实现Ajax效果的增删改查”主题中,我们将深入探讨如何利用JavaScript和Ajax技术来实现数据库数据的CRUD(创建、读取、更新和删除)操作。 首先,我们需要理解Ajax的工作原理。Ajax通过创建XMLHttpRequest...

    easyui ajax实现增删改查源码

    本文将详细解析基于EasyUI、Ajax、Jquery、JSP、Servlet和JDBC的"easyui ajax实现增删改查"项目,以及如何利用这些技术进行数据库操作。 首先,EasyUI是一个基于jQuery的UI框架,提供了丰富的组件,如表格、下拉框...

    ajax实现增删改查、分页、级联等功能的代码,可以兼容IE,firefox,opera所有的浏览器

    本资源提供了一个利用Ajax实现增删改查、分页和级联功能的代码示例,适用于各种主流浏览器,包括IE、Firefox和Opera。 增删改查是数据库操作的基本功能,对应于数据库中的INSERT、DELETE、UPDATE和SELECT操作。在...

    基于Javaweb中用Ajax做的增删改查

    在本项目中,需要编写SQL语句来执行增删改查操作。例如,`INSERT INTO`, `DELETE FROM`, `UPDATE`, `SELECT`等。 5. **JDBC连接**: Java通过Java Database Connectivity (JDBC) API与SQL Server建立连接。需要...

    Jquery Ajax动态增删改查

    而jQuery库简化了JavaScript的使用,包括对AJAX的操作,使得开发者能够更加便捷地实现动态增删改查功能。 一、jQuery AJAX的基本用法 1. `$.ajax()`: 这是jQuery提供的核心AJAX函数,它接受一个包含各种选项的对象...

    AnjularJS使用Ajax实现增删改查springMVC+Mybatis

    在本文中,我们将深入探讨如何使用AngularJS与Ajax技术实现基于SpringMVC和Mybatis的CRUD(创建、读取、更新和删除)操作。这是一个常见的Web开发场景,旨在提高用户体验,通过异步数据交互来避免页面刷新。 **...

    Servlet+Jsp+Ajax分页增删改查

    使用Servlet+Jsp+JDBC实现增删改查,前台显示界面使用JavaScript、Ajax与后台交互进行登录验证,并对查询结果实现分页、局部刷新,以及复选框(全选、反选)操作,适合Web开发的初学者

    一个页面实现Ajax效果的增删改查-JQuery+Json版

    本项目"一个页面实现Ajax效果的增删改查-JQuery+Json版"正是利用了这一技术,结合jQuery库和JSON数据格式,为用户提供了一个在一个页面上完成数据增、删、改、查功能的示例。 **jQuery** 是一个轻量级的JavaScript...

    基于Struts2和Hibernate3的JQuery ajax crud .利用JQuery中的Ajax实现增删改查!!!用MySQL数据库

    好吧。这个功能完全是我自己写的 不想分享的 写这不容易的,...就是利用JQuery的Ajax,实现增删改查,后台用Struts2+HIbernate3框架,MySQL数据库。附带sql文件。绝对正常运行!!适合基础的朋友提示能力。欢迎下载。

    ajax分页增删改查

    在本文中,我们将深入探讨如何使用Ajax、GETJSON方法、Servlet以及JavaWeb技术来实现对MySQL数据库的分页增删改查操作。首先,我们理解一下这些技术的基础知识。 Ajax,全称为Asynchronous JavaScript and XML,是...

    BootStrapTable实现增删改查

    在MVC(Model-View-Controller)架构中,结合C#后端,BootstrapTable可以实现数据的增删改查操作,提供用户友好的界面和高效的后台处理。 1. **BootstrapTable的基本结构** BootstrapTable的核心是HTML的`&lt;table&gt;`...

    ssm-crud 用ssm+bootstrap+ajax实现增删改查

    本项目"ssm-crud"则是基于SSM框架实现的增删改查功能,结合了Bootstrap前端框架和Ajax异步技术,提供了更加友好的用户体验。 1. **Spring框架**:Spring作为核心容器,负责管理对象(如Bean)的生命周期和依赖注入...

    SSM框架增删改查和分页,ajax数据传导

    下面我们将详细探讨SSM框架在实现增删改查和分页操作,以及如何通过Ajax进行数据传导。 1. **Spring框架**:Spring的核心是依赖注入(Dependency Injection,DI),它负责管理对象的生命周期和对象间的依赖关系。...

    一个页面实现Ajax效果的增删改查-JQuery+Json版.zip

    本项目"一个页面实现Ajax效果的增删改查-JQuery+Json版.zip"正是展示了如何利用jQuery库和JSON数据格式在单一页面上实现动态的数据操作,包括添加、删除、修改和查询功能。 首先,jQuery是一个轻量级的JavaScript库...

    ajax经典面试题;一个页面实现增删改查之纯JS版

    本话题将详细探讨如何在一个页面上利用纯JavaScript实现增删改查(CRUD)操作,并结合ASP.NET来构建Web应用程序。 首先,`Ajax`的核心理念在于不刷新整个页面的情况下更新页面的特定部分,通过异步通信与服务器进行...

    mvc+ef+api实现增删改查

    本项目"mvc+ef+api实现增删改查"就是一个典型的例子,它结合了Microsoft的ASP.NET MVC、Entity Framework(EF)以及Web API技术,以C#语言为基础,构建了一个功能完善的后台服务。以下将详细阐述这些关键知识点。 *...

    ssh AJAX 增删改查

    在本主题中,“ssh AJAX 增删改查”指的是如何利用SSH框架和AJAX技术实现数据的添加、删除、修改和查询功能。 首先,我们来看SSH框架。Struts2作为MVC(Model-View-Controller)架构的一部分,负责处理HTTP请求并...

    Servlet+jsp+AJax的分页及增删改查

    在本文中,我们将深入探讨如何使用Servlet、JSP和Ajax技术实现一个完整的增删改查(CRUD)功能以及分页。Servlet是Java Web应用程序的一部分,用于处理客户端请求和响应。JSP则是一种动态网页技术,它允许在服务器端...

Global site tag (gtag.js) - Google Analytics