PHP学习笔记(15)PDO数据库操作+AJAX无刷新技术删除用户
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无刷新技术删除用户的更多相关文章
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- Java 学习笔记(16)——Java数据库操作
数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...
- Python学习笔记六:数据库操作
一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...
- 什么是Ajax无刷新技术?
浏览器实例化一个Ajax对象,这个对象发送一个HTTP请求,并且携带一定的参数,传输到后台.后台服务器接收这些参数,同时过滤一下传过来的参数,做出逻辑判断.如果需要数据库操作参与,就要取出数据,格式化 ...
- [Python] 学习笔记之MySQL数据库操作
1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择 ...
- Python学习笔记15—mysql的操作
安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...
- Python学习笔记21:数据库操作(sqlite3)
Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言. SQLite作为后端数据库,能够搭配Python建站点,或者制作有数据存储需求的工具. SQLite还在其他领域有广泛 ...
- python学习笔记(十)完善数据库操作
1.cur = coon.cursor(cursor=pymysql.cursors.DictCursor)的用法 建立游标,指定cursor类型返回的是字典,如果不指定类型,返回的是元组类型数据 i ...
- PHP学习笔记(16)AJAX无刷新技术--深入理解
Ajax里的onreadystatechange的作用是什么 发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态,XMLHttpRequest对象提供了onrea ...
随机推荐
- [转]MSSQL多列取最大或者最小值
本文转自:http://blog.csdn.net/wufeng4552/article/details/4681510 /* lvl1 lvl2 lvl3 lvl4 lvl 4 3 4 1 3 2 ...
- Weblogic常见故障之二:XAER_NOTA XAException问题的解决
在weblogic执行XA操作的时候,我们会碰到如下的错误,后来发现是JDBC配置的问题.主要报错:java.sql.SQLException: XA error: XAER_NOTA : The X ...
- screen space reflection/soft alpha test/
http://www.crytek.com/cryengine/presentations/secrets-of-cryengine-3-graphics-technology 很多宝贝里面 不止题目 ...
- Python数据结构与算法(几种排序)
数据结构与算法(Python) 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是 ...
- 关于Java的File类、字节流和字符流
一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...
- scrapy-splash抓取动态数据例子八
一.介绍 本例子用scrapy-splash抓取界面网站给定关键字抓取咨询信息. 给定关键字:个性化:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 ...
- NIO的简单Demo
package jesse.test1; import java.io.IOException; import java.net.InetAddress; import java.net.InetSo ...
- 使用rsync进行多服务器同步
使用rsync进行多服务器同步 @(Others) 当集群数量很大时,修改配置文件和节点之间的文件同步是一件很麻烦且浪费时间的事情. rsync是linux上实现不同机器之间文件同步.备份的工具,ce ...
- rocketmq的线程服务基类
RocketMQ有很多的线程服务,这些服务都继承自抽象类ServiceThread. 这个抽象类可以单独抽出来用到我们其他的项目中来,仅仅需要修改下日志模块: /** * Licensed to th ...
- [Android Pro] Android的5个进程等级
1.foreground process 正处于activity resume状态 正处于bound服务交互的状态 正处于服务在前台运行的状态(StartForeGround( ...