这段时间写了一个简单的人员管理系统,就是对人员的增删改查,在写删除的时候遇到了一个这样的问题:当我点击删除人员的时候,我要在浏览器上有一个对话框,问客户是否确定要删除该人员。刚开始我是用最原始的java方法,创建一个JOptionPane,
JOptionPane jOptionPane = new JOptionPane();int showConfirmDialog = jOptionPane.showConfirmDialog(null, "是否要删除该学生",null,JOptionPane.YES_NO_OPTION);
后来想着这样太麻烦,而且不好看,后来发现ajax可以解决这个问题,
而且这个本应该就是在jsp代码中实现的,而不应该是在servlet实现。
<script type="text/javascript">
function del(id,obj){
var this_dom=obj;
var result=confirm("确定要删除该管理员吗?");
if(result==true){
//确定要删除,发送删除请求
htmlobj=$.ajax({
url:"${ctx}/back/DeleteManager?method=delete",
data:{"id":id},
async:false,
success:function(data){
alert(data);
//console.log(data);
if(data=="删除成功"){ $(this_dom).parent().parent().remove();
}
}
});
}
}
</script>
调用ajax():$.ajax({
需要的参数
});
url:你要进入的servlet
data:servlet需要传入的数据
async:是异步请求还是同步请求,异步为false,同步为true,默认为true
success:当执行完servlet后的回调函数,它的参数由服务器来传。
这里有一个网址,就是讲ajax方法:
ajax()
还有就是当数据库里面删除了后,浏览器上应该也将这条数据删除,方法有:
//obj是通过函数传进来的-----this,代表一个<tr></tr>
var this_dom=obj;
$(this_dom).parent().parent().remove();
<c:forEach var="item" items="${pages.list}">
<tr>
<td>${item.username }</td>
<td>${item.name }</td>
<td>${item.realSex }</td>
<td>${item.createTime }</td>
<td>${item.getRealStatus()}</td>
<td>
<a href="${ctx }/back/ManagerServlet?method=toUpdateManagerUI&id=${item.id}">修改</a>
<a style="cursor:default" onclick="del('${item.id}',this);" >删除</a>
</td>
</tr>
</c:forEach>
这样在浏览器上就能将那一行数据删除了。