使用VUE+原生PHP完成搜索后分页的效果
html代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../day18/js/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<link rel="stylesheet" href="../day13/bootstrap4.min.css">
</head>
<body>
<div id="app">
<input type="search" placeholder="请输入关键字" v-model="list.word" @keyup.enter="search()">
<table class="table">
<tr>
<th>主键ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>班级</th>
<th>操作</th>
</tr> <tr v-for="(v,k) in list.data">
<th>{{v.uid}}</th>
<th>{{v.name}}</th>
<th>{{v.sex==1?'男':'女'}}</th>
<th>{{v.age}}</th>
<th>{{v.cname}}</th>
<th>
<a href="#" @click="del(k)">删除</a>
</th>
</tr> </table> <a href="#" @click="page(1)">首页</a>
<a href="#" @click="page(2)">上一页</a>
<a href="#" @click="page(3)">下一页</a>
<a href="#" @click="page(4)">尾页</a>
</div>
</body>
</html>
<script>
new Vue({
el:'#app',
data:{
list:[]
},
methods:{
//搜索
search(){
var obj = this;
var word = obj.list.word;//关键字
axios.get('list.php?word='+word)
.then(function (e) {
obj.list = e.data;//cpage、data、last_page、next、prev
console.log(e.data);
})
},
//自定义方法/自定义函数
page(text){
var obj = this;//提前声明this函数
var word = obj.list.word;
//判断页码p
if(text==1){//首页
var p = 1;
}else if(text==2){//上一页
var p = obj.list.prev;
}else if(text==3){//下一页
var p = obj.list.next;
}else if(text==4){//尾页
var p = obj.list.last_page;
}else{
var p = 1;//其他情况
} axios.get('list.php?page='+p+'&word='+word)
.then(function (e) {
obj.list = e.data;//cpage、data、last_page、next、prev
console.log(e.data);
}) }, //ajax删除
del(k){
if(confirm('确定要删除吗?')){
var obj = this;
var uid = obj.list['data'][k]['uid'];
//ajax
axios.get('del.php?uid='+uid)
.then(function (e) {
if(e.data!=3){
alert('删除失败');
return false;
}
// obj.list['data'].splice(k,1); axios.get('list.php?page='+obj.list.cpage)
.then(function (e) {
obj.list = e.data;//cpage、data、last_page、next、prev
console.log(e.data);
}) })
}
} },
created(){
var obj = this;
//页面加载后自定执行
axios.get('list.php')
.then(function (e) {
obj.list = e.data;//cpage、data、last_page、next、prev
console.log(e.data);
})
}
})
</script>
php原生代码:
<?php
$link = mysqli_connect('127.0.0.1','root','root','1906');
mysqli_set_charset($link,'utf8'); //逻辑操作
//接收关键字
$word = $_GET['word'];
//1、接收当前页
$page = isset($_GET['page']) ? $_GET['page'] : 1;
//2、设置每页显示的条数
$length = 3;
//3、求出总条数
if(empty($word)){
$sql = "select a.*,b.cname from student as a join class as b on a.class_id=b.cid";
}else{
$sql = "select a.*,b.cname from student as a join class as b on a.class_id=b.cid where a.name like '%$word%'";
} $res = mysqli_query($link,$sql);//结果集
$count = mysqli_num_rows($res);//总条数
//4、总页数
$last_page = ceil($count/$length);
//5、偏移量=(当前页-1)*每页显示的条数
$limit = ($page-1)*$length;
//6、查询
if(empty($word)){
$sql = "select a.*,b.cname from student as a join class as b on a.class_id=b.cid limit $limit,$length";
}else{
$sql = "select a.*,b.cname from student as a join class as b on a.class_id=b.cid where a.name like '%$word%' limit $limit,$length";
} $res = mysqli_query($link,$sql);//结果集
$data = mysqli_fetch_all($res,1);//将结果集转化成二维关联数组 //释放结果集
mysqli_free_result($res);
//关闭数据库
mysqli_close($link); //返回结果
$arr['last_page'] = $last_page;//最后一页
$arr['prev'] = $page-1<=1 ? 1 : $page-1;//上一页
$arr['next'] = $page+1>=$last_page ? $last_page : $page+1;//下一页
$arr['cpage'] = $page;//当前页
$arr['data'] = $data;//页面展示的数据
$arr['word'] = $word;//搜索的关键字 echo json_encode($arr);
使用VUE+原生PHP完成搜索后分页的效果的更多相关文章
- 关于TP5.0搜索后分页
使用$Model->where($where)->paginate($page,$count);的时候如果点击下一页会出现条件重置问题,经过测试可以使用Db::name('data') - ...
- 微信小程序 和 laravel8 实现搜索后分页 加载
Page({ /** * 页面的初始数据 */ data: { activity:{}, page:1, last_page : 0, keyword:'' }, //加载 scroll(e){ le ...
- jQuery页面替换+php代码实现搜索后分页
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- lavarel 框架 搜索后分页
................框架控制器 public function list(Request $request){ $word=$request->input('word'); $arr ...
- django分页及搜索后如何翻页
django自带了Pagnator 导入 from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage 分页 def ...
- 第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页
第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页 逻辑处理函数 计算搜索耗时 在开始搜索前:start_time ...
- 测试开发【提测平台】分享9-DBUntils优化数据连接&实现应用搜索和分页功能
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 从本期开始知识点讲以思维导图的形式给出,内容点会按照讲解-应用-展示的形式体现,这样会更清晰些. DBUntils连接池 在项目中链接数据 ...
- MVC5 + EF6 + Bootstrap3 (11) 排序、搜索、分页
系列教程:MVC5 + EF6 + Bootstrap3 上一节:MVC5 + EF6 + Bootstrap3 (10) 数据查询页面 源码下载:点我下载 我工作的源码:http://www.jin ...
- 夺命雷公狗---DEDECMS----33dedecms自定义搜索以及分页功能完成
我们现在要开始实现模版里面的搜索功能了,我们先找要做出一个检索提交表单,如下所示: 只要我们点击生成之后我们的表单就获取到了,可以直接拿生成好的html表单拿来用来测试下.. 将他嵌入首页的模版文件, ...
随机推荐
- COM笔记-关于HRESULT
HRESULT HRESULT(Here's the RESULT)值分成32位值, HRESULT值中16到30这15个比特位包含的是设备代码.设备代码标识的是可以返回HRESULT返回代码的操作系 ...
- servlet初识servletConfig
package day09; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; ...
- jQuery中获取属性值:attr()、html()、text()、val()等(一)
<!DOCTYPE html> <html> <head> <title>01_basic.html</title> <meta na ...
- Python中的多线程编程
前言: 线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元) 它被包含在进程之中,是进程中的实际运作单位 一个进程中可以并发多个线程每条线程并行执行不同的任务 (线程是进程中的一个实体,是 ...
- 服务器安装CentOS7.9系统(U盘启动方式)
一.安装环境 机房的华为GPU服务器,型号G2500,8张P4显卡,需要安装最小化的CentOS7.9操作系统,利用U盘启动的方式进行安装. 二.安装说明 虽然本环境是GPU服务器,但是安装方式同样适 ...
- Python - 面向对象编程 - 小实战(3)
需求 房子(House)有户型.总面积.家具名称列表:新房子没有任何的家具 家具(HouseItem)有名字.占地面积 席梦思(bed) 占地 4 平米 衣柜(bed) 占地 2 平米 餐桌(bed) ...
- 第09课:GDB 实用调试技巧(下)
本节课的核心内容: 多线程下禁止线程切换 条件断点 使用 GDB 调试多进程程序 多线程下禁止线程切换 假设现在有 5 个线程,除了主线程,工作线程都是下面这样的一个函数: void thread_p ...
- python3 spider [ urllib.request ]
# # 导入urllib库的urlopen函数 # from urllib.request import urlopen # # 发出请求,获取html # html = urlopen(" ...
- Java日期时间API系列42-----一种高效的中文日期格式化和解析方法
中文日期(2021年09月11日 和 二〇二一年九月十一日 )在生活中经常用到,2021年09月11日很好处理直接使用模板:yyyy年MM月dd日:二〇二一年九月十一日比较不好处理,需要每个数字进行转 ...
- 创建一个People类型,有年龄、工资、性别三个属性。 定义一个方法叫做找对象,找对象方法传过来一个人;
创建一个People类型,有年龄.工资.性别三个属性. 定义一个方法叫做找对象,找对象方法传过来一个人: 首先如果性别相同,就输出"我不是同性恋", 如果对方是男的,年龄小于28, ...