• jQuery+AJXA+PHP动态获取数据实现新闻网页下拉加载功能(1+X Web前端开发中级 例题)


    📄题目要求

    • 阅读下列说明、效果图和代码,进行动态网页开发,回答问题1至问题4。

    🧩说明

    • 在我们的生活中,当加载的内容看完后,再次下拉,就会加载出更多的内容,本项目实现下拉加载功能,应用HTML、CSS、AJAX、JSON、PHP等技术。项目名称为news,包含主页index.html、style.css和adminList.php文件,其中,主页面index.html显示新闻内容;style.css为主页样式文件;adminList.php为主页提供数据,返回JSON格式数据。
    • 主页分为两个部分:焦点图和新闻列表,当滚动条触底,通过ajax发送请求到adminList.php,adminList.php返回JSON格式的数据。在主页上通过ajax拿到数据后,使用JQuery进行DOM操作,实现动态加载数据。如图3-1所示。

    • 进行动态网页开发,补全代码,在(1)至(18)处填入正确的内容。

    🧩效果图

    🧩补充:题目文件结构

     

    💻HTML代码

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>列表页title>
    6. <link rel="stylesheet" href="css/style.css">
    7. <script src="js/jquery.min.js">script>
    8. head>
    9. <body>
    10. <div class="box">div>
    11. <div class="list">
    12. <div class="title">新闻列表div>
    13. <ul>
    14. ul>
    15. div>
    16. <script src="js/index.js">script>
    17. body>
    18. html>

    💻CSS代码

    1. body,h1,h2,h3,h4,h5,h6,p,ol,ul,dl,dd{
    2. margin: 0;
    3. padding: 0;
    4. }
    5. ul,ol{
    6. list-style: none;
    7. }
    8. a{
    9. text-decoration: none;
    10. }
    11. .box{
    12. width: 100%;
    13. height: 300px;
    14. background: url("../img/timg.jpg") center;
    15. }
    16. .list{
    17. width: 700px;
    18. margin:0 auto 50px;
    19. }
    20. .list .title{
    21. font-size: 22px;
    22. line-height: 60px;
    23. }
    24. .list ul{
    25. /* ____(1)____;设置盒子投影,颜色为#CCC,模糊度为15px */
    26. box-shadow: 0 0 15px #CCC;/*设置盒子投影,颜色为#CCC,模糊度为15px*/
    27. }
    28. .list ul li{
    29. position: relative;
    30. padding:20px;
    31. border-bottom:1px dashed #ccc;
    32. }
    33. .list ul li h2{
    34. width: 500px;
    35. white-space: nowrap;
    36. overflow: hidden;
    37. text-overflow: ellipsis;
    38. font-weight: normal;
    39. font-size: 16px;
    40. }
    41. .list ul li h2 a{
    42. color:#333;
    43. }
    44. .list ul li span{
    45. position: absolute;
    46. top:20px;
    47. right:20px;
    48. }

    💻JavaScript代码

    1. $(function(){
    2. var num=1;//当前页数
    3. var pageCount=7;//每页显示的数量
    4. var pageNum=0;//总页数
    5. function ajaxDate(num){
    6. $.ajax({
    7. url: 'http://localhost/second/adminList.php',
    8. type: 'get',
    9. dataType: 'json',
    10. data: {
    11. // ___(10)_____//传递的参数
    12. num: num,pageCount:pageCount//传递的参数
    13. },
    14. success:function(res){
    15. pageNum=Math.ceil(res.count/pageCount);//请求的总页数
    16. res.list.forEach(function(data){
    17. var str="
    18. "+
  • ""+ data.time+""+
  • "
  • ";
  • // ___(12)_______;//将字符串追加到指定的位置
  • $(".list ul").append(str);//将字符串追加到指定的位置
  • })
  • }
  • })
  • }
  • ajaxDate(num);
  • $(window).scroll(function(){
  • // var sTop=____(13)__;//获取滚动条卷进去的距离,用jquery
  • var sTop=$(this).scrollTop();//获取滚动条卷进去的距离,用jquery
  • // var sHeight=____(14)_____;//获取可视区域的高度,用jquery
  • var sHeight=$(this).height();//获取可视区域的高度,用jquery
  • // var bodyH=______(15)________;//获取页面所有内容的高度,用jquery
  • var bodyH=$(document).height();//获取页面所有内容的高度,用jquery
  • // if(___(16)_____){//请写出判断条件
  • if(sTop+sHeight>bodyH-1){//请写出判断条件
  • num++;
  • // if(____(17)____){//请写出判断条件
  • if(num<=pageNum){//请写出判断条件
  • console.log(num);
  • // ___(18)______;//调用函数请求加载数据
  • ajaxDate(num);//调用函数请求加载数据
  • }
  • }
  • })
  • })
  • 💻PHP代码

    1. // header ("Content-type: text/html; charset=utf-8")
    2. $servername = "localhost";
    3. $username = "root";
    4. $password = "123456";
    5. // 创建连接
    6. // $conn = __(2)____($servername, $username, $password);
    7. $conn = new mysqli($servername, $username, $password);
    8. // 检测连接
    9. if ($conn->connect_error) {
    10. die("连接失败: " . $conn->connect_error);
    11. }
    12. mysqli_query($conn,'set names utf8');
    13. // 查询数据库
    14. mysqli_select_db($conn,"list");
    15. // 求信息总数
    16. // $sqlCount="____(3)____";# 查询所有数据的sql语句
    17. $sqlCount="select * from news";# 查询所有数据的sql语句
    18. // $resultC = ___(4)____(__(5)___, __(6)____);# 执行数据库
    19. $resultC = mysqli_query($conn,$sqlCount);# 执行数据库
    20. $count=mysqli_num_rows($resultC);
    21. $num=$_GET["num"];
    22. $pageCount=$_GET["pageCount"];
    23. // $start=_____(7)____;#求开始查询的索引值
    24. $start=($num-1)*$pageCount;#求开始查询的索引值
    25. // 返回指定数据
    26. // $sql = "___(8)______";#返回指定数据的sql语句
    27. $sql = "select * from news limit $start,$pageCount";#返回指定数据的sql语句
    28. $result = mysqli_query($conn, $sql);
    29. $res = array('count'=>$count);
    30. $jarr=array();
    31. // 遍历数据
    32. // while($row = _____(9)_____($result))
    33. while($row = mysqli_fetch_array($result))
    34. {
    35. array_push($jarr,$row);
    36. }
    37. $res = array(
    38. 'count'=>$count,
    39. 'list'=>$jarr
    40. );
    41. echo json_encode($res);
    42. mysqli_close($conn);
    43. ?>

    🎯实现效果

    因为没有这个表的数据,所以没有实际运行出来,这题的难度稍微有点大,对于PHP和AJAX不熟悉的同学,直接没戏了

    📰完整答案

    试题二(30分)
    【问题】(30分)
    (1)box-shadow: 0 0 15px #ccc  
    (2)new mysqli
    (3)SELECT * from news (不区分大小写)
    (4)mysqli_query
    (5)$conn
    (6)$sqlCount
    (7)($num-1)*$pageCount
    (8)SELECT * from news limit $start,$pageCount
    (9)mysqli_fetch_array
    (10)num: num,pageCount:pageCount
    (11)Math.ceil(res.count/pageCount)
    (12)$(".list ul").append(str)
    (13)$(this).scrollTop()
    (14)$(this).height()
    (15)$(document).height()
    (16)sTop+sHeight>bodyH-1(这里的数值不是唯一的,可以是任意数字)
    (17)num<=pageNum或者pageNum>=num
    (18)ajaxDate(num)
    (1-12每空1.5分,13-18每空2分 共30分)


    🎯点赞收藏,防止迷路🔥 


  • 相关阅读:
    分布式管理
    sqllibs 25-26关payload
    前端案例-css实现ul中对li进行换行
    接口自动化和UI自动化的区别
    数据结构—LinkedList与链表
    腾讯叶聪:朋友圈爆款背后的计算机视觉技术与应用
    【Serilog】具有完全结构化事件的简单.NET日志记录
    【Go】令牌桶限流算法
    Apache DolphinScheduler的工作流传参
    OpenVPN 介绍
  • 原文地址:https://blog.csdn.net/weixin_53231455/article/details/127798359