异步网络原生(ajax)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="i.css">
</head>
<body>
<table width="400" border="1" align="center" bordercolor="#ff8600">
<thead>
<tr>
<th colspan="5">
<input type="text" placeholder="请输入查询的名字" id="uname">
<button id="query" class="kyle">
点击查询
</button>
</th>
</tr>
<tr style="text-align: left;">
<th>编号</th>
<th>姓名</th>
<th width="126">电话</th>
<th>会员</th>
<th>删除</th>
</tr>
</thead>
// 插入 拿到数据后的格式
<tbody id="container" style="text-align: left;border-collapse: collapse;">
</tbody>
</table>
</body>
<script>
let container = document.getElementById("container");
let query = document.getElementById("query");
let uname = document.getElementById("uname");
// 监听按钮是否被点击
query.onclick = function () {
// 判断输入的是否为空
if(!uname.value.trim()){
alert("输入为空!")
return
}
// 如果为空则不会执行到这里,相反不为空执行ajax函数
ajax()
}
// 写ajax函数,避免重复编写ajax一些相同的内容
function ajax() {
// 创建ajax对象:用于发送请求
var xhr = new XMLHttpRequest();
/*
异步任务(请求)不在主线程中阻塞, 当被调用回调函数的时候才去交给主线程执行
*/
// 监听响应数据 readyState
// 等于1时 ajax对象被创建出来, var xhr = new XMLHttpRequest();
// 等于2时 已经建立了请求方式 也就是open(),
// 等于3时发送请求也就是send(),
// 等于4时 接受到了请求
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status < 300) {
var result = JSON.parse(xhr.responseText);
container.innerHTML = showList(result.data);
}
}
}
// 创建请求对象
xhr.open("GET", `/admin/query?u_names=${uname.value}`, true);
// 发送数据
xhr.send();
}
ajax()
function showList(arr) {
let s = ""
for (const index in arr) { // 循环数据 构建页面显示的格式
s += `
<tr>
<td>${arr[index].u_id}</td>
<td>${arr[index].u_names}</td>
<td>${arr[index].u_phone}</td>
<td>${arr[index].u_member}</td>
<td>
<button onclick="del(${arr[index].u_id})">删除</button>
</td>
</tr>
`;
}
return s // 返回的字符串是要插入到tbody标签的html格式的数据, 数据+格式
}
function del(u_id){
// 判断是不是字符串
if(isNaN(u_id)){
return
}
// 实例化XMLHttpRequest 对象
let xhr = new XMLHttpRequest();
// 监听状态 当状态到4 说明已经收到数据
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status >= 200 && xhr.status < 300){
var result = JSON.parse(xhr.responseText);
if (result.code == 1){
ajax()
alert("删除成功!!")
}else{
alert("删除失败!!")
}
}
}
}
xhr.open("DELETE",`/admin/del/${u_id}`, true);
xhr.send();
}
</script>
</html>

浙公网安备 33010602011771号