pdo.php

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>pdo</title>
</head>
<body>
<p>用户表</p>
<table width="1000px" border="1px" cellspacing="0">
<tr>
<th>id</th>
<th>用户名</th>
<th>密码</th>
<th>删除</th>
</tr>
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test','root','jia6181813');
$sql = "SELECT * FROM user";
$obj = $pdo->query($sql);
//fetch和fetchAll不能同时使用,第一个会覆盖第二个
$results = $obj->fetchAll(2);
// echo "<pre>";
// print_r($results);
// echo "</pre>";
//fetch用while
/*while ($row = $obj->fetch()) {
echo "<tr>";
echo "<td>$row[id]</td>";
echo "<td>$row[name]</td>";
echo "<td>$row[password]</td>";
echo "</tr>";
}*/
//fetchAll用foreach
foreach ($results as $row) {
echo "<tr id=$row[id]>";
echo "<td>$row[id]</td>";
echo "<td>$row[name]</td>";
echo "<td>$row[password]</td>";
// echo "<td><a href='delete.php?id={$row[id]}'>删除</a></td>";
echo "<td><a href='javascript:' class='del' num={$row[id]}>删除</a></td>";
echo "</tr>";
} ?>
</table> </body>
<script>
var objs = document.getElementsByClassName('del');
for (var i = 0; i < objs.length; i++) {
objs[i].onclick = function(){
var id = this.getAttribute('num');
//生成ajax对象
var xhr = new XMLHttpRequest();
//js get轻轨delete.php文件,同时给该文件传递一个id值,方便删除数据
xhr.open("get","delete.php?id="+id,true);
//ajax开始异步连接并请求delete.php?id=1
xhr.send();
//js监听整个通讯过程
xhr.onreadystatechange = function(){
if (xhr.readyState==4) {
//responseText能接收php echo的数据
r = xhr.responseText;
// alert(r);
if (r=='1') {
//获取tr一行的id
var tr = document.getElementById(id);
//将这一行隐藏
tr.style.display = 'none';
}
}
}
}
} </script>
</html>

delete.php

 <?php
$id = $_GET['id'];
$pdo = new PDO('mysql:host=localhost;dbname=test','root','123');
$sql = "DELETE FROM user WHERE id={$id}";
//echo "$pdo->exec($sql)";
//$obj = $pdo->query($sql); // echo "<script>alert('删除成功')</script>";
//echo "<script>location='pdo.php'</script>";
//if括号里面语句会执行,不需要提前query()
if ($pdo->query($sql)) {
echo 1;
}else{
echo 0;
} ?>

PHP学习笔记(15)PDO数据库操作+AJAX无刷新技术删除用户的更多相关文章

  1. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  2. Java 学习笔记(16)——Java数据库操作

    数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...

  3. Python学习笔记六:数据库操作

    一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...

  4. 什么是Ajax无刷新技术?

    浏览器实例化一个Ajax对象,这个对象发送一个HTTP请求,并且携带一定的参数,传输到后台.后台服务器接收这些参数,同时过滤一下传过来的参数,做出逻辑判断.如果需要数据库操作参与,就要取出数据,格式化 ...

  5. [Python] 学习笔记之MySQL数据库操作

    1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择 ...

  6. Python学习笔记15—mysql的操作

    安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...

  7. Python学习笔记21:数据库操作(sqlite3)

    Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言. SQLite作为后端数据库,能够搭配Python建站点,或者制作有数据存储需求的工具. SQLite还在其他领域有广泛 ...

  8. python学习笔记(十)完善数据库操作

    1.cur = coon.cursor(cursor=pymysql.cursors.DictCursor)的用法 建立游标,指定cursor类型返回的是字典,如果不指定类型,返回的是元组类型数据 i ...

  9. PHP学习笔记(16)AJAX无刷新技术--深入理解

    Ajax里的onreadystatechange的作用是什么 发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态,XMLHttpRequest对象提供了onrea ...

随机推荐

  1. [转]SSIS中的脚本—脚本任务

    本文转自:http://www.cnblogs.com/tylerdonet/archive/2011/09/16/2179123.html 脚本任务主要用来控制数据流,当现有的控制流 任务不能满足复 ...

  2. nginx最大并发连接数的思考:worker_processes、worker_connections、worker_rlimit_nofile

    参考nginx官网:http://nginx.org/en/docs/ngx_core_module.html#worker_connections 从用户的角度,http 1.1协议下,由于浏览器默 ...

  3. linux内核设计学习

    负载平衡程序 load_balance调用条件:只要当前可执行队列为空,它就会被调用.被定时器调用:系统空闲时每隔1毫秒调用一次或其他情况下每隔200mm调用一次.单处理器不会被调用 执行步骤1. 首 ...

  4. Spark Streaming no receivers彻底思考

    数据接入Spark Streaming的二种方式:Receiver和no receivers方式 建议企业级采用no receivers方式开发Spark Streaming应用程序,好处: 1.更优 ...

  5. 矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  6. 【转载】Android控件属性大全

    控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或falseandroid:layout_ ...

  7. .NET Framwork 之 托管代码的执行过程

    源代码代码第一次编译形成IL中间语言的托管代码,在运行时被Class Loader装载后进行JIT第二次编译形成托管的本地代码.在执行过程中,它会不断地检查当前我们执行的代码的安全性和规范性. Cla ...

  8. vue - utils.js

    exports:导出功能函数或变量 module.exports:默认导出{} ------------------------------------------------------------ ...

  9. webDriver API——第13部分UI Support

    class selenium.webdriver.support.select.Select(webelement) deselect_all() Clear all selected entries ...

  10. ionic 签名、打包

    ionic cordova platform add androidionic cordova build android [debug版本,无需签名] ionic cordova build and ...