博主信息
博文 20
粉丝 0
评论 0
访问量 19962
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
前端用Ajax实现数据异步加载,无刷新分页(核心思路为 事件派发+事件代理)
庖丁
原创
800人浏览过

1、贴个动图演示完成的效果

2、附上list.php源代码

其它代码和老师写的基本一样,以后写完整小项目时一并贴出

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>员工管理系统</title>
  8. <link rel="stylesheet" href="style.css">
  9. </head>
  10. <body>
  11. <table>
  12. <caption>员工管理系统</caption>
  13. <thead>
  14. <tr>
  15. <td>编号</td>
  16. <td>姓名</td>
  17. <td>年龄</td>
  18. <td>性别</td>
  19. <td>工资</td>
  20. <td>邮箱</td>
  21. <td>生日</td>
  22. <td>入职时间</td>
  23. <td>操作</td>
  24. </tr>
  25. </thead>
  26. <tbody>
  27. </tbody>
  28. </table>
  29. <p></p>
  30. </body>
  31. <script>
  32. const tbody = document.querySelector("tbody");
  33. const p = document.querySelector("p");
  34. const frag = new DocumentFragment();
  35. const even = new Event('click');
  36. p.addEventListener("click", ev => {
  37. ev.preventDefault();
  38. let page_num;
  39. //利用事件代理的特性判断是否为页面第一次加载,并执行对应操作
  40. if(ev.currentTarget.innerText === ev.target.innerText){
  41. if (ev.target.innerHTML){
  42. page_num = false;
  43. }else{
  44. page_num = 1;
  45. }
  46. }else{
  47. //利用split()方法将url字符串切分为一个数组,取后面的页数
  48. page_num = (ev.target.href).split('p=');
  49. page_num = parseInt(page_num[1]);
  50. }
  51. if (page_num){
  52. // 1、创建xhr对象
  53. const xhr = new XMLHttpRequest();
  54. // 2、配置参数
  55. xhr.open('get','api.php?p=' + page_num);
  56. xhr.responseType = "json";
  57. // 3、处理响应
  58. xhr.onload=()=>{
  59. let staffs = xhr.response.staffs;
  60. let pages = parseInt(xhr.response.pages);
  61. let htmlstr = '';
  62. for(let i = 0; i <staffs.length; i++){
  63. htmlstr = htmlstr + `<tr><td>${staffs[i].sid}</td><td>${staffs[i].name}</td><td>${staffs[i].age}</td><td>${staffs[i].gender}</td><td>${staffs[i].salary}</td><td>${staffs[i].email}</td><td>${staffs[i].birthday}</td><td>${staffs[i].create_at}</td><td><button onclick="location.href='handle.php?action=edit&sid=${staffs[i].sid}'">编辑</button><button onclick="del(${staffs[i].sid})">删除</button></td></tr>`;
  64. };
  65. if (page_num !== 1){
  66. const create_a = document.createElement("a");
  67. create_a.innerText = '首页';
  68. create_a.href = `/list.php?p=1`;
  69. frag.appendChild(create_a);
  70. }
  71. if (page_num !== 1){
  72. const create_a = document.createElement("a");
  73. create_a.innerText = '上一页';
  74. create_a.href = `/list.php?p=${page_num - 1}`;
  75. frag.appendChild(create_a);
  76. }
  77. for(let i = 1; i <= pages; i++){
  78. const create_a = document.createElement("a");
  79. create_a.innerText = i;
  80. create_a.href = `/list.php?p=${i}`;
  81. if (page_num == i){
  82. create_a.classList.add("active")
  83. };
  84. frag.appendChild(create_a);
  85. };
  86. if (page_num !== pages){
  87. const create_a = document.createElement("a");
  88. create_a.innerText = '下一页';
  89. create_a.href = `/list.php?p=${page_num + 1}`;
  90. frag.appendChild(create_a);
  91. }
  92. if (page_num !== pages){
  93. const create_a = document.createElement("a");
  94. create_a.innerText = '尾页';
  95. create_a.href = `/list.php?p=${pages}`;
  96. frag.appendChild(create_a);
  97. }
  98. tbody.innerHTML = htmlstr;
  99. p.innerHTML = '';
  100. p.appendChild(frag);
  101. };
  102. // 4、发送xhr内容
  103. xhr.send(null);
  104. }
  105. });
  106. // 事件派发,触发第一次异步加载内容
  107. p.dispatchEvent(even);
  108. // 删除信息时,弹出消息提示框
  109. function del(sid) {
  110. let url = 'handle.php?action=del&sid='+sid;
  111. return confirm('是否删除编号为: '+sid+' 的员工信息?') ? location.href = url : false;
  112. }
  113. </script>
  114. </html>
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学