php---mysql+ajax 表格(table)分页实现

效果图(后台新闻管理部分)

这里写图片描述
ul li展示实现见此文

以下的代码中的css实现没有包括,可以自己去实现。通过ajax的回调函数success等,获取数据库中的数据,然后再通过js将数据输出到php中,从而动态显示数据。以作备忘。

代码实现

pages.js
var curPage = 1; //当前页码
var total,pageSize,totalPage;
//获取数据
function getData(page){
    $.ajax({
        type: 'POST',
        url: 'page.php',
        data: {'pageNum':page-1},
        dataType:'json',
        beforeSend:function(){
            $("#tablelist ").append("<h3>loading...</h3>");
        },
        success:function(json){
            $("#tablelist").empty();
            total = json.total; //总记录数
            pageSize = json.pageSize; //每页显示条数
            curPage = page; //当前页
            totalPage = json.totalPage; //总页数
            var table_html = "";
            table_html += "<table class=\"table table-hover\"><tr><th width=\"*\">新闻标题</th><th width=\"100\">发布者</th><th width=\"190\">发布日期</th><th width=\"100\">操作</th></tr>";
            var list = json.list;
            $.each(list,function(index,array){ //遍历json数据列
                if(array['title'].length > 28){
                 var title_sub = array['title'].substring(0,20); // 获取子字符串。
                }
                else var title_sub = array['title'];
                table_html += "<tr><td>"+title_sub+"</td><td>admin</td><td>"+array['date']+"</td><td><a class=\"button border-blue button-little\" href=\"#\">修改</a> <a class=\"button border-yellow button-little\" href=\"#\" onclick=\"{if(confirm('确认删除?')){window.location.href='delete_news.php?news_id="+array['id']+"';}else return false;}\">删除</a></td><tr>";            
            });
            table_html += "</table>";
            $("#tablelist").append(table_html);
        },
        complete:function(){ //生成分页条
            getPageBar();
        },
        error:function(){
            alert("数据加载失败");
        }
    });
}

//获取分页条
function getPageBar(){
    //页码大于最大页数
    if(curPage>totalPage) curPage=totalPage;
    //页码小于1
    if(curPage<1) curPage=1;
    pageStr = "<span class=\"button_span_page gray\">共"+total+"条"+curPage+"/"+totalPage+"</span>";

    //如果是第一页
    if(curPage==1){
        pageStr += "<span class=\"button_span blue\">首页</span><span class=\"button_span blue\">上一页</span>";
    }else{
        pageStr += "<span class=\"button_span green\"><a href='javascript:void(0)' rel='1'>首页</a></span><span class=\"button_span green\"><a href='javascript:void(0)' rel='"+(curPage-1)+"'>上一页</a></span>";
    }

    //如果是最后页
    if(curPage>=totalPage){
        pageStr += "<span class=\"button_span blue\">下一页</span><span class=\"button_span blue\">尾页</span>";
    }else{
        pageStr += "<span class=\"button_span green\"><a href='javascript:void(0)' rel='"+(parseInt(curPage)+1)+"'>下一页</a>&nbsp;</span><span class=\"button_span green\"><a href='javascript:void(0)' rel='"+totalPage+"'>尾页</a></span>";
    }

    $("#pagecount").html(pageStr);
}

$(function(){
    getData(1);
    $("#pagecount span a").live('click',function(){
        var rel = $(this).attr("rel");
        if(rel){
            getData(rel);
        }
    });
}); 
page.php
<?php
include_once('../connect/connect.php');

$page = intval($_POST['pageNum']);

$result = mysql_query("select id from news");
$total = mysql_num_rows($result);//总记录数

$pageSize = 6; //每页显示数
$totalPage = ceil($total/$pageSize); //总页数

$startPage = $page*$pageSize;
$arr['total'] = $total;
$arr['pageSize'] = $pageSize;
$arr['totalPage'] = $totalPage;
$query = mysql_query("select id,title,content,date from news order by id desc limit $startPage,$pageSize");
while($row=mysql_fetch_array($query)){
     $arr['list'][] = array(
        'id' => $row['id'],
        'title' => $row['title'],
        'content' => $row['content'],
        'date' => date("Y-m-d H:i:s",$row['date'])
     );
}
//print_r($arr);
echo json_encode($arr);
?>
news_manager.php

注意要包含进js文件

...
        <div id="tablelist">
            <!-- ajax会填充表格代码 -->
        </div>
...
首先,我们需要创建一个员工实体类,包含上述属性。假设这个实体类的名字为Employee。 ``` @Data @AllArgsConstructor @NoArgsConstructor public class Employee { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String sex; private String department; private Date hireDate; private String password; } ``` 在pom.xml文件中加入以下依赖: ```xml <!-- springboot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>latest-version</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <!-- layui --> <dependency> <groupId>com.clay</groupId> <artifactId>layui-spring-boot-starter</artifactId> <version>latest-version</version> </dependency> ``` 配置Mybatis-plus的分页插件、数据源和Mapper扫描路径。在application.yml文件中加入以下配置: ```yml mybatis-plus: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.demo.entity.* global-config: db-config: id-type: auto table-prefix: emp_ configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-undeserialized-object: true use-generated-keys: true default-fetch-size: 1000 default-statement-timeout: 30000 use-column-label: true call-setters-on-nulls: true plugins: - com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor spring: datasource: url: jdbc:mysql://localhost:3306/demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver hikari: maximum-pool-size: 5 minimum-idle: 5 auto-commit: true idle-timeout: 180000 mybatis: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: com.example.demo.entity.* configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 创建Mapper接口,用于对Employee的增删改查操作。 ```java @Mapper public interface EmployeeMapper extends BaseMapper<Employee> { } ``` 创建Controller类,包含员工注册的接口方法。 ```java @RestController @RequestMapping("/employee") public class EmployeeController { @Autowired private EmployeeMapper employeeMapper; @PostMapping("/register") public Object register(@RequestBody Employee employee) { employeeMapper.insert(employee); return Result.success(); } } ``` 在前端页面中,使用Layui框架实现员工注册的表单页面。在JavaScript代码中使用Ajax提交表单数据。 ```html <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input type="text" name="name" id="name" required lay-verify="required" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">年龄</label> <div class="layui-input-inline"> <input type="number" name="age" id="age" required lay-verify="required|number" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">性别</label> <div class="layui-input-inline"> <select name="sex" id="sex" required lay-verify="required"> <option value="">请选择</option> <option value="male">男</option> <option value="female">女</option> </select> </div> </div> <!-- 其他表单项略 --> <button class="layui-btn" onclick="register()">注册</button> <script> function register() { $.ajax({ type: "POST", url: "/employee/register", data: $("#form").serialize(), dataType: "json", success: function (data) { if (data.code === 0) { layer.msg("注册成功!"); } else { layer.msg("注册失败!"); } }, error: function () { layer.msg("请求失败!"); } }); } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值