以Nation表为例,将Nation表显示在页面上,每一行数据前面加上复选框,后面加上查看详情,点击以弹窗形式显示每一行的数据,并且在表格最后一行加上全选复选框,点击选中全部数据,后面跟一个批量删除按钮,点击删除选中项,如图:

主页面:需要用到弹窗插件,将js与css文件加载过来

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
<script src="../tanchuang/tanchuang.js"></script> <style type="text/css">
.xq{ width:80px; height:30px; background-color:#06C; line-height:30px; color:#FFF;}
.xq:hover{ cursor:pointer; background-color:#F60; color:#FFF;}
</style>
<link href="../tanchuang/tanchuang.css" rel="stylesheet" type="text/css" />
</head> <body>
<h1>Nation表</h1>
<table id="biao" width="800px" border="1" cellpadding="0" cellspacing="0"> </table> </body>
</html>
<script type="text/javascript">
$(document).ready(function(e) { Show();
function Show() //将各个事件放到一个方法里,这样调用这一个方法就可以加上各个事件了
{
$.ajax({
async:false,
//url:"testchuli.php",
url:"ChuLi1.php",
data:{type:0}, //将三个处理页面放入一个页面,需要传一个参数type
type:"POST",
dataType:"JSON",
success: function(data){
var str= "<tr height='30px'><td>民族代号</td><td>民族名称</td><td>查看详情</td></tr>";
for(var k in data)
{
str+="<tr><td><input type='checkbox' value='"+data[k][0]+"' class='ck' />"+data[k][0]+"</td><td>"+data[k][1]+"</td><td><div class='xq' bs='"+data[k][0]+"'>查看详情</div></td></tr>";
}
str+="<tr height='30px'><td colspan='3'><input type='checkbox' id='qx' /> 全选 <input type='button' id='btn' value='批量删除' /></td></tr>";
$("#biao").html(str);
}
}); //查看详情
$(".xq").click(function(){
//取主键值
var code = $(this).attr("bs");
$.ajax({
//url:"xqchuli.php",
url:"ChuLi1.php",
data:{code:code,type:1},
type:"POST",
dataType:"TEXT",
success: function(data){ var lie =data.split("^");
var html = "<div>民族代号:"+lie[0]+"</div><div>民族名称:"+lie[1]+"</div>"; var win = new Window({ width : 400, //宽度
height : 500, //高度
title : '详细信息', //标题
content : html, //内容
isMask : true, //是否遮罩
buttons : "", //按钮
isDrag:true, //是否移动
});
}
});
}) //全选
$("#qx").click(function(){
//全选按钮选中状态,索引0取document对象
var xz = $(this)[0].checked;
//操作所有复选框的选中状态
var ck =$(".ck");
ck.prop("checked",xz);
}) //批量删除
$("#btn").click(function(){
//找选中的主键值,用循环遍历选中的主键值
var ck =$(".ck");
var str ="";
for(var i=0;i<ck.length;i++)
{
if(ck.eq(i).prop("checked"))
{
str+=ck.eq(i).val()+"','";
}
}
str= str.substr(0,str.length-3); //分隔符占3个字符,截取字符串,去掉最后的"','",这样正好匹配SQL语句 $.ajax({
//url:"Delete.php",
url:"ChuLi1.php",
data:{str:str,type:2},
type:"POST",
dataType:"TEXT",
success: function(data){
alert(data); Show();
}
});
})
}
}); </script>

将显示数据,查看详情与批量删除三个处理页面合成一个页面,只需传一个参数type:

<?php
include("../DB.class.php");
$db = new DB();
$type = $_POST["type"];
//用switch case比if else清晰
switch($type)
{
case 0:
$sql ="select * from Nation";
echo $db->JsonQuery($sql);
break;
case 1:
$code = $_POST["code"];
$sql = "select * from Nation where Code = '{$code}'";
echo $db->StrQuery($sql);
break;
case 2:
if(!empty($_POST["str"]))
{
$str = $_POST["str"];
$sql = "delete from Nation where Code in ('{$str}')";
//echo $sql; 输出SQL语句看是否正确
if($db->Query($sql,1))
{
echo "删除成功!";
}
else
{
echo "删除失败!";
}
}
else
{
echo "请选择要删除的项!";
}
break;
default:
echo "";
}

AJAX实现弹窗显示详情,全选和批量删除的更多相关文章

  1. php--jquery操作全选、批量删除、加减行

  2. MVC3学习:利用mvc3+ajax实现全选和批量删除

    本例数据库操作使用EF code first; 先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮 <table> <tr> @*在标题行添加一个全 ...

  3. 关于jquery全选反选 批量删除的一点心得

    废话不多说直接上代码: 下面是jsp页面的html代码: <table id="contentTable" class=""> <thead& ...

  4. angularJS 全选反选批量删除

    <th> <label for="flag"> <span ng-hide="master">全选</span> ...

  5. jquery操作全选、批量删除、加减行

    --------------------------------------------------------------------------------------- html静态页面 --- ...

  6. 作业:汽车查询--弹窗显示详情,批量删除 ajax做法(0521)

    作业:显示以下界面: 作业要求: 1.查看详细信息,以弹窗的形式显示,使用ajax2.批量删除 一.主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  7. 作业:汽车查询--弹窗显示详情,批量删除 php做法(0521)

    作业:显示以下界面: 作业要求: 1.查看详细信息,以弹窗的形式显示,使用ajax2.批量删除 一.主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...

  8. JavaScript-checkbox标签-隐藏、显示、全选、取消和反选等操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]

    [虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...

随机推荐

  1. 【ASP.NET】——AdRotator控件

    AdRotator控件即广告控件. 广告,是站点不可缺少的一部分.也是站点获取收益的最主要途径,但最初制作广告非常麻烦.asp.net就将该方法封装成了一个控件.为我们节省了非常多时间.这也是ASP. ...

  2. SHELL $RANDOM产生的随机数范围是0到32767

    1.使用系统的 $RANDOM 变量 fdipzone@ubuntu:~$ echo $RANDOM 17617 fdipzone@ubuntu:~$ echo $RANDOM 17617 $RAND ...

  3. 带宽的单位为什么是Hz而不是bps?

    如果从电子电路角度出发,带宽(Bandwidth)本意指的是电子电路中存在一个固有通频带,这个概念或许比较抽象,我们有必要作进一步解释.大家都知道,各类复杂的电子电路无一例外都存在电感.电容或相当功能 ...

  4. 算法之动态规划(最长递增子序列——LIS)

    最长递增子序列是动态规划中最经典的问题之一,我们从讨论这个问题开始,循序渐进的了解动态规划的相关知识要点. 在一个已知的序列 {a1, a 2,...an}中,取出若干数组成新的序列{ai1, ai ...

  5. python dict转json并保存文件

    import json f = open("index.html", "wb") json.dump(response.data, f) f.close() d ...

  6. caffe net 可视化工具,,层特征可视化

    1.只用网络在线结构绘制可视化网络模型 http://ethereon.github.io/netscope/#/editor 将对应的网络输入到里面,然后按shift+enter即可查看对应的网络结 ...

  7. Laravel5.1 模型初探

    Laravel的模型也是访问数据库的,它更加面向对象,一个模型对应着一张表 我们可以使用模型对数据做一些增删改查的操作. 1 创建模型 创建模型是可以使用Artisan控制台的: php artisa ...

  8. 忘记了Ubuntu的密码

    今天装了个虚拟机,现在装起来顺手的不行,毕竟用了多少次VMware了,结果进去发现,以前用过的虚拟机密码忘了,于是就百度解决方法,总结如下,其实很简单. 我用的Ubuntu 11的版本,后续即使有改动 ...

  9. python发送邮件(yagmail模块)

    import yagmail user = 'xxxx@qq.com' passwd = 'xxxx' # 授权码,不是密码,需要在邮箱中设置,看邮箱类型,有的需要设置 res = yagmail.S ...

  10. CodeIgniter 入门教程第一篇:信息发布

    一.MVC CodeIgniter 采用MVC架构即:控制层.模型层和视图层. 对应Application下面的文件夹   (图1): 所有新建文件以.php结尾 视图层 view 文件夹放入HTML ...