<%@ 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>
用户查询的请求
</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;
}
分享到:
相关推荐
在本"Ajax实现增删改查的demo"中,我们将探讨如何利用Ajax技术来实现数据库数据的基本操作:增加(Add)、删除(Delete)、修改(Update)和查询(Query)。 **一、Ajax的基础原理** 1. **创建XMLHttpRequest对象*...
在这个“js实现Ajax效果的增删改查”主题中,我们将深入探讨如何利用JavaScript和Ajax技术来实现数据库数据的CRUD(创建、读取、更新和删除)操作。 首先,我们需要理解Ajax的工作原理。Ajax通过创建XMLHttpRequest...
本文将详细解析基于EasyUI、Ajax、Jquery、JSP、Servlet和JDBC的"easyui ajax实现增删改查"项目,以及如何利用这些技术进行数据库操作。 首先,EasyUI是一个基于jQuery的UI框架,提供了丰富的组件,如表格、下拉框...
本资源提供了一个利用Ajax实现增删改查、分页和级联功能的代码示例,适用于各种主流浏览器,包括IE、Firefox和Opera。 增删改查是数据库操作的基本功能,对应于数据库中的INSERT、DELETE、UPDATE和SELECT操作。在...
在本项目中,需要编写SQL语句来执行增删改查操作。例如,`INSERT INTO`, `DELETE FROM`, `UPDATE`, `SELECT`等。 5. **JDBC连接**: Java通过Java Database Connectivity (JDBC) API与SQL Server建立连接。需要...
而jQuery库简化了JavaScript的使用,包括对AJAX的操作,使得开发者能够更加便捷地实现动态增删改查功能。 一、jQuery AJAX的基本用法 1. `$.ajax()`: 这是jQuery提供的核心AJAX函数,它接受一个包含各种选项的对象...
在本文中,我们将深入探讨如何使用AngularJS与Ajax技术实现基于SpringMVC和Mybatis的CRUD(创建、读取、更新和删除)操作。这是一个常见的Web开发场景,旨在提高用户体验,通过异步数据交互来避免页面刷新。 **...
使用Servlet+Jsp+JDBC实现增删改查,前台显示界面使用JavaScript、Ajax与后台交互进行登录验证,并对查询结果实现分页、局部刷新,以及复选框(全选、反选)操作,适合Web开发的初学者
本项目"一个页面实现Ajax效果的增删改查-JQuery+Json版"正是利用了这一技术,结合jQuery库和JSON数据格式,为用户提供了一个在一个页面上完成数据增、删、改、查功能的示例。 **jQuery** 是一个轻量级的JavaScript...
好吧。这个功能完全是我自己写的 不想分享的 写这不容易的,...就是利用JQuery的Ajax,实现增删改查,后台用Struts2+HIbernate3框架,MySQL数据库。附带sql文件。绝对正常运行!!适合基础的朋友提示能力。欢迎下载。
在本文中,我们将深入探讨如何使用Ajax、GETJSON方法、Servlet以及JavaWeb技术来实现对MySQL数据库的分页增删改查操作。首先,我们理解一下这些技术的基础知识。 Ajax,全称为Asynchronous JavaScript and XML,是...
在MVC(Model-View-Controller)架构中,结合C#后端,BootstrapTable可以实现数据的增删改查操作,提供用户友好的界面和高效的后台处理。 1. **BootstrapTable的基本结构** BootstrapTable的核心是HTML的`<table>`...
本项目"ssm-crud"则是基于SSM框架实现的增删改查功能,结合了Bootstrap前端框架和Ajax异步技术,提供了更加友好的用户体验。 1. **Spring框架**:Spring作为核心容器,负责管理对象(如Bean)的生命周期和依赖注入...
下面我们将详细探讨SSM框架在实现增删改查和分页操作,以及如何通过Ajax进行数据传导。 1. **Spring框架**:Spring的核心是依赖注入(Dependency Injection,DI),它负责管理对象的生命周期和对象间的依赖关系。...
本项目"一个页面实现Ajax效果的增删改查-JQuery+Json版.zip"正是展示了如何利用jQuery库和JSON数据格式在单一页面上实现动态的数据操作,包括添加、删除、修改和查询功能。 首先,jQuery是一个轻量级的JavaScript库...
本话题将详细探讨如何在一个页面上利用纯JavaScript实现增删改查(CRUD)操作,并结合ASP.NET来构建Web应用程序。 首先,`Ajax`的核心理念在于不刷新整个页面的情况下更新页面的特定部分,通过异步通信与服务器进行...
本项目"mvc+ef+api实现增删改查"就是一个典型的例子,它结合了Microsoft的ASP.NET MVC、Entity Framework(EF)以及Web API技术,以C#语言为基础,构建了一个功能完善的后台服务。以下将详细阐述这些关键知识点。 *...
在本主题中,“ssh AJAX 增删改查”指的是如何利用SSH框架和AJAX技术实现数据的添加、删除、修改和查询功能。 首先,我们来看SSH框架。Struts2作为MVC(Model-View-Controller)架构的一部分,负责处理HTTP请求并...
在本文中,我们将深入探讨如何使用Servlet、JSP和Ajax技术实现一个完整的增删改查(CRUD)功能以及分页。Servlet是Java Web应用程序的一部分,用于处理客户端请求和响应。JSP则是一种动态网页技术,它允许在服务器端...