关键词搜索&分页功能的前端代码(ajax + jQuery)

Posted 让知识成为资产

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关键词搜索&分页功能的前端代码(ajax + jQuery)相关的知识,希望对你有一定的参考价值。

1.功能介绍

使用语言:ajax + jQuery
实现功能:

  • 在页面加载时获得用户关键词搜索的查询字符串,向服务器发请求,拿回数据(商品信息及页码相关信息),加载到页面上;

  • 分页功能,点击上一页/数字页码/下一页,在页面上显示相应的页面内容。


2.代码实现

//页面一加载就要向服务器发起请求
$(function(){
  //封装函数,每点一次页码,都重新加载一遍商品列表,页码默认值是1
  function loadPage(pno=1){  

    //在页面加载时获得search查询字符串,向服务器发请求,拿回数据
    if(location.search!=="")   
    //如果有关键词搜索,比如 ?kw=iphone 64g black
      var kw=location.search.slice(1); 
      //去掉?,获得查询字符串kw=iphone 64g black

    $.ajax({
      type:"get",
      url:"data/products/getProductsByKw.php",
      data:"pno="+pno+(kw?"&"+kw:""),
      dataType:"json", 
      success:function(data){
        //console.log(data);  
        //返回的json数据(php传回的$output包括count,data,pcount,pno,psize)
        
       var html="";
       for(var item of data.data){          html+=`<article class="thing"><header class="cover">            <a href="">            <img alt="${item.title}">            </a>            </header>            <section class="content">            <h4 class="title">            <a href="">${item.title}</a>            </h4>            </section>            <footer class="info">            <span class="reduce">-</span>            <input type="text" value="1">            <span class="add">+</span>            <a href="javascript:;" class="addCart" data-lid="">加入购物车</a>            </footer>          </article>`;        };        //页面动态加载数据        $(".things-list").html(html);        //分页功能        //加载上一页/页码/下一页内容及样式        var html=`<a href="javascript:;" class="previous">上一页</a>`;        for(var i=1;i<=data.pcount;i++){          html+=`<a href="javascript:;" class=${i==data.pno?"current":""}>${i}</a>`;          //动态加载当前页页码,如果是当前页,样式显示高亮        };        html+=`<a href="javascript:;" class="next">下一页</a>`;        $(".pagination").html(html);        //上一页,下一页按钮的禁用切换        if(data.pno==1)        //如果是第一页          $(".pagination").children(":first").addClass("disabled");          //禁用上一页的按钮        if(data.pno==data.pcount){        //如果是最后一页          $(".pagination").children(":last").addClass("disabled");          //禁用下一页的按钮        };      },      error:function(xhr,err){        alert("网络故障请检查!");      }    });  };  //点击按钮显示相应页面,给父元素绑定单击事件,利用冒泡原理  //不需要重复请求数据,单独封装函数  $(".pagination").on("click","a:not(.disabled):not(.current)",function(){  //当前页面和禁用页面不能点,其它页面都可以点    //this->a    //alert(this.innerHTML);    var $a=$(this);      //上一页单击事件的思路:找到当前页码(取内容),页码-1,再加载页面内容      if($a.is(".previous"))        loadPage(parseInt($(".pagination>a.current").html())-1);        //查找下一页的按钮      else if ($a.is(".next"))        loadPage(parseInt($(".pagination>a.current").html())+1);        //pno为字符串类型,用parseInt()将字符串转成数字,否则"1"+1后为"11"      else      //其它情况为数字页码,调用loadPage,传递页码,加载页面内容        loadPage($a.html());  });  //调用loadPage()函数  loadPage(); });


更多内容,长按二维码关注

上文:

以上是关于关键词搜索&分页功能的前端代码(ajax + jQuery)的主要内容,如果未能解决你的问题,请参考以下文章

ajax前端分页实现

ElasticSearch - 旅游酒店案例es功能实现

springboot+thymeleaf处理带搜索条件的分页问题解决思路

前端js分页功能的实现,非常实用,新手必看

Django中使用JS通过DataTable实现表格前端分页,每页显示页数,搜索等功能

java ajax分页问题