原生PHP+原生ajax批量删除(超简单),ajax删除,ajax即点即改,完整代码,完整实例
效果图:


建表:company
DROP TABLE IF EXISTS `company`;
CREATE TABLE `company` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `company_name` varchar(255) DEFAULT NULL,
  `lxr` varchar(255) DEFAULT NULL,
  `tel` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `user` varchar(255) DEFAULT NULL,
  `pwd` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;
展示页面:show.php
代码:
<?php
// 连接数据库
$conn = mysqli_connect('127.0.0.1', 'root', '123456', '12a');
// 设置编码方式:sql语句
$result = mysqli_query($conn, "set names utf8");
$sql = "select * from company";
// 查询结果集
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
}
?>
<html>
	<meta charset="utf-8">
	<title>ajax即点即改</title>
<body>
	<h1>人员信息</h1>
		<table border="1px solid">
			<tr>
				  <th></th>
				  <th>id</th>
				  <th>用户名</th>
				  <th>联系人</th>
				  <th>手机号</th>
				  <th>邮箱</th>
				  <th>单位名称</th>
				  <th>操作</th>
			</tr>
			<?php foreach ($data as $k => $v) {?>
				<tr id="st_<?php echo $v['id'] ?>">
					  <td>
						    <input type="checkbox" name="usercheck" value="<?php echo $v['id'] ?>">
					  </td>
					  <td><?php echo $v['id'] ?></td>
					  <td><?php echo $v['user'] ?></td>
					  <td><?php echo $v['lxr'] ?></td>
					  <td><?php echo $v['tel'] ?></td>
					  <td><?php echo $v['email'] ?></td>
					  <td>
						    <span id="dian_<?php echo $v['id'] ?>" onclick="changeme(<?php echo $v['id'] ?>)">
							      <?php echo $v['company_name'] ?>
						    </span>
						    <input type="hidden" id="input_<?php echo $v['id'] ?>" onblur="doit(<?php echo $v['id'] ?>)">
					  </td>
    				  <td onclick="del(<?php echo $v['id'] ?>)">删除</td>
				</tr>
			<?php }?>
		</table>
	<input type="checkbox" id="checkall" onclick="ckAll()">全选/全不选
	<button onclick="delall()">批量删除</button>
</html>
<script>
//全选
function ckAll(){
	// 获取全选按钮的状态,让上面的按钮的选中状态和它的状态相同,
      var flag=document.getElementById("checkall").checked;
      var cks=document.getElementsByName("usercheck");
      for(var i=0;i<cks.length;i++){
            cks[i].checked=flag;
      }
}
function del(id){
	   // 实例化ajax对象
         var xhr=new XMLHttpRequest();
       // 打开一个请求
         xhr.open("get","do_delete.php?id="+id);
       // 发送请求
         xhr.send();
       // 监听状态是否变化,状态改变事件
         xhr.onreadystatechange=function(){
       	// 请求成功。以及响应结束
               if(xhr.status==200&&xhr.readyState==4){
           		      if(xhr.responseText=='删除成功'){
           			        alert('删除成功')
           			        document.getElementById("st_"+id).innerHTML=""
           		      };
               }
         }
   }
// 即点即改
  function changeme(id){
  	// 获取span节点
  	  var span_node = document.getElementById('dian_'+id)
  	// 获取input节点
  	  var input_node = document.getElementById('input_'+id)
  	// 1、点击让span 隐藏,让input 显示出来
  	  span_node.style.display="none"	// 一定是双引号,span标签隐藏
	     input_node.type="text"
  }
function doit(id){
  	// 获取span节点
  	  var span_node = document.getElementById('dian_'+id)
  	// 获取input节点
  	  var input_node = document.getElementById('input_'+id)
  	// 获取input节点中的 value值
  	  var input_value = input_node.value
  	// 如果输入值非空,input框隐藏,值显示在span标签中
  	  if (input_value) {
  		    span_node.style.display="block"
  		    input_node.type="hidden"		//input框隐藏
  		// ajax发送请求,更改数据库
  		    var xhr = new XMLHttpRequest();
  		    xhr.open('get','update.php?cname='+input_value+'&id='+id)
  		    xhr.send()
  		    xhr.onreadystatechange=function(){
  			      if (xhr.readyState==4&&xhr.status==200) {
  				// 值显示在span标签中
  				        span_node.innerHTML=input_value
  			      }
  		    }
  	  }
  }
  // 批量删除
  function delall() {
      var usercheck = document.getElementsByName("usercheck");
    // 获取总共有多少个checkbox
      var len = usercheck.length;
      var flag = false;
      var str="";
var arr=new Array();
  for (var i = 0; i < len; i++) {
          if (usercheck[i].checked) {
              // console.log(usercheck[i].value)//拼接id    
arr.push(usercheck[i].value
str=str+','+usercheck[i].value,
      flag = true;
          }
      }
      if (!flag) {
          alert('至少选择一个');
          return;
      }
    // 截取字符串,去除第一个逗号,
      var id = str.substr(1);
    // 实例化ajax对象
      var xhr=new XMLHttpRequest();
    // 打开一个请求
      xhr.open("get","do_delete.php?id="+id);
    // 发送请求
      xhr.send();
    // 监听状态是否变化
      xhr.onreadystatechange=function(){
    // 请求成功。以及响应结束
          if(xhr.status==200&&xhr.readyState==4){
        for (var i = 0; i < arr.length; i++) {
	    	          id = arr[i]
	    	          document.getElementById("st_"+id).innerHTML=""
	            }
    }
      }
  }
</script>
单删文件:do_delete.php
代码:
<?php
// 连接数据库
$link = mysqli_connect('127.0.0.1', 'root', '123456', '12a');
// 接收参数id,要删除的额数据的id
$id = $_GET['id'];
$sql = "delete from company where id in ($id)";
// 执行删除
$st = mysqli_query($link, $sql);
if ($st) {
      echo "删除成功";
} else {
      echo "删除失败";
}
?>
//即点即改更新数据库,文件:update.php
<?php
// 连接数据库
$link = mysqli_connect('127.0.0.1', 'root', '123456', '12a');
$id = $_GET['id'];
$cname = $_GET['cname'];
$sql = "update company set company_name='$cname' where id=$id";
$st = mysqli_query($link, $sql);
if ($st) {
      echo "更改成功";
} else {
      echo "更改失败";
}
?>
原生PHP+原生ajax批量删除(超简单),ajax删除,ajax即点即改,完整代码,完整实例的更多相关文章
- Android超简单气泡效果
		
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680最近有用到水下气泡上升效果,因此在网上查了一下资料,结果还真找到了 ...
 - 原生JS取代一些JQuery方法的简单实现
		
原生JS取代一些JQuery方法的简单实现 下面小编就为大家带来一篇原生JS取代一些JQuery方法的简单实现.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.选 ...
 - 用C#Winform写个简单的批量清空文件内容和删除文件的小工具
		
用C#Winform写个简单的批量清空文件内容和删除文件的小工具 本文介绍这个简单得不能再简单的小项目.做这个项目,有以下目的. 1 当然是做个能用的工具 2 学习使用Github 关于用VS2013 ...
 - ASP.NET中一种超简单的Ajax解决方案
		
为什么是Ajax2? 因为之前有一个blqw.Ajax,并且已经在项目中投入使用了,但是没有这个方便,这个是后来才弄的,为了纪念第一版的blqw.Ajax,所以这个就2了... 话说看了评论才发现,原 ...
 - ajax批量删除功能的实现源代码
		
效果展示: 完整代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charse ...
 - 超简单!80行代码实现Google日历(拖放、移动、AJAX)
		
介绍 本实例介绍使用DayPilot Lite for ASP.NET MVC library 类来实现类google日历效果. 在线实例 天视图 星期视图 拖放调整 拖放移动 行代码来实现a ...
 - 使用jQuery通过点击它删除HTML表格行-超简单
		
jQuery的已成为所有时刻的最常用和最喜爱的JavaScript框架之一.它不仅不会减少在JavaScript编码简单的技术开销,而且也使您的代码的跨浏览器兼容.我已经写了许多关于jQuery教程, ...
 - 服务器文档下载zip格式  SQL Server SQL分页查询  C#过滤html标签  EF 延时加载与死锁  在JS方法中返回多个值的三种方法(转载)  IEnumerable,ICollection,IList接口问题  不吹不擂,你想要的Python面试都在这里了【315+道题】   基于mvc三层架构和ajax技术实现最简单的文件上传  事件管理
		
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
 - 超简单使用批处理(batch)操作数据库
		
超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...
 
随机推荐
- 前端与算法 leetcode 387. 字符串中的第一个唯一字符
			
目录 # 前端与算法 leetcode 387. 字符串中的第一个唯一字符 题目描述 概要 提示 解析 解法一:双循环 解法二:Set法单循环 算法 传入测试用例的运行结果 执行结果 GitHub仓库 ...
 - CentOS安装vsftpd FTP后修改默认21端口方法
			
第一步:修改配置文件 vi /etc/vsftpd/vsftpd.conf 首先需要在vsftpd配置文件中添加: listen_port=1802pasv_enable=YESpasv_min_po ...
 - KVM虚拟机典型配置文件xml
			
<domain type='kvm'> <name>vm64-1</name> //虚拟机名称 <memory unit='MiB'>2300</ ...
 - golang ----array and slice
			
Go Slices: usage and internals Introduction Go's slice type provides a convenient and efficient mean ...
 - 排序算法Java代码实现(四)—— 归并排序
			
本篇内容: 归并排序 归并排序 算法思想: 将两个或两个以上的有序表合并成一个新的有序表, 即把待排序序列分成若干个子序列,每个子序列是有序的,然后在把有序子序列合并为整体有序序列. 此算法分为两步: ...
 - VS.NET(C#)--2.4_aspx默认页面模板代码
			
默认模板代码 客户端浏览器将忽视<script>块间任何字符,不在页面输出.通过<%=DataTime.Now.ToString() %> 将服务端代码放中间 < ...
 - Asp.NetCoreWebApi入门 - 从零开始新建api项目
			
开发环境 打开VS,建立项目 项目结构 修改 StartUp 类代码 ConfigureServices方法 Configure方法 为开发环境和生产环境配置不同的 Startup 新建一个Contr ...
 - mvc5 源码解析2-2 mvchandler的执行
			
我们从application获取的时候查看stepmanager的实现类 IHttpHandler applicationInstance = HttpApplicationFactory.GetAp ...
 - Visual Studio Code创建C#项目
			
Visual Studio Code是一个支持跨平台的文本编辑器,同其他文本文本编辑器一样,不但占用磁盘空间小,性能也比较快:近几年由于不断的升级和许多开发者提供大量的插件,它已经成为了一个非常强大的 ...
 - 攻防世界-web -高手进阶区-PHP2
			
题目 首先发现源码泄露 /index.phps 查看源代码 即: <?php if("admin"===$_GET[id]) { echo("<p>no ...