首页 > 其他分享 >《黑马旅游网》综合案例(九)旅游线路查询

《黑马旅游网》综合案例(九)旅游线路查询

时间:2022-08-25 20:48:35浏览次数:72  
标签:rname cid route lis 查询 pb 旅游网 var 黑马

参数传递

header.html:(注意导入js/getParameter.js文件)

<!-- 头部 start -->
<script src="js/getParameter.js"></script>
<script>//给搜索按钮绑定单击事件,获取搜索输入框的内容
        $("#search-button").click(function () {
            //线路名称
            var rname = $("#search_input").val();
            var cid = getParameter("cid");
            //跳转路径
            location.href = "http://localhost/travel/route_list.html?cid="+cid+"&rname="+rname;
        });

    });
</script>

route_list.html:(导入js/getParameter.js文件)

在将其修改

$(function () {
            /*var search = location.search;
            //切割字符串,拿到第二个值
            var cid = search.split("=")[1];*/
            //获取cid的参数值
            var cid = getParameter("cid");
            //获取rname的参数值
            var rname = getParameter("rname");
            //判断rname如果不为null或者""
            if (rname){
                //url解码
                rname = window.decodeURIComponent(rname);
            }
            //当页码加载完成后,调用load方法,发送ajax请求加载数据
            load(cid);
        });

后台代码

 RouteServlet进行修改:

 

 

 RouteService:进行修改:

 

 

 RouteServiceImpl:进行修改

 

 

 UserDao:进行修改

 

 

 

 UserDaoImpl:进行修改:(注意哪些拼接里面的空格)

public class RouteDaoImpl implements RouteDao {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public int findTotalCount(int cid, String rname) {
        //String sql = "select count(*) from tab_route where cid = ?";
        //定义SQL模板
        String sql = "select count(*) from tab_route where 1=1 ";
        //判断参数是否有值
        StringBuilder sb = new StringBuilder(sql);

        List params = new ArrayList();//条件
        if (cid!=0){
            sb.append( " and cid = ? ");
            params.add(cid);//添加?对应的值
        }
        if (rname !=null && rname.length()>0 && !"null".equals(rname)){
            sb.append(" and rname like ? ");
            params.add("%"+rname+"%");
        }
        sql = sb.toString();


        return template.queryForObject(sql,Integer.class,params.toArray());
    }

    @Override
    public List<Route> findByPage(int cid, int start, int pageSize, String rname) {
        //String sql = "select * from tab_route where cid = ? limit ? , ?";
        //定义SQL模板
        String sql = "select * from tab_route where 1 = 1 ";
        //判断参数是否有值
        StringBuilder sb = new StringBuilder(sql);

        List params = new ArrayList();//条件
        if (cid!=0){
            sb.append( " and cid = ? ");
            params.add(cid);//添加?对应的值
        }
        if (rname !=null && rname.length()>0 && !"null".equals(rname)){
            sb.append(" and rname like ? ");
            params.add("%"+rname+"%");
        }
        sb.append(" limit ? , ? ");//分页条件
        sql = sb.toString();

        params.add(start);
        params.add(pageSize);

        return template.query(sql,new BeanPropertyRowMapper<Route>(Route.class),params.toArray());
    }
    
}

访问测试:

前台代码

修改时要特别注意:

 

 

 

 

    <script>
        $(function () {
            /*var search = location.search;
            //切割字符串,拿到第二个值
            var cid = search.split("=")[1];*/
            //获取cid的参数值
            var cid = getParameter("cid");
            //获取rname的参数值
            var rname = getParameter("rname");
            //判断rname如果不为null或者""
            if (rname){
                //url解码
                rname = window.decodeURIComponent(rname);
            }

            //当页码加载完成后,调用load方法,发送ajax请求加载数据
            load(cid,null,rname);
        });
        function load(cid,currentPage,rname) {
            //发送ajax请求,请求route/pageQuery,传递cid
            $.get("route/pageQuery",{cid:cid,currentPage:currentPage,rname:rname},function (pb) {
                //解析PageBean数据,展示到页面上
                //分页工具条数据展示,展示总页码和总记录数
                $("#totalPage").html(pb.totalPage);
                $("#totalCount").html(pb.totalCount);

                //展示分页页码
                var lis = "";

                var fristPage = '<li onclick="javascript:load('+cid+',1,\''+rname+'\')"><a href="javascript:void(0)">首页</a></li>';
                //计算上一页的页码
                var beforeNum = pb.currentPage - 1;
                if (beforeNum<=0){
                    beforeNum=1;
                }
                var beforePage = '<li onclick="javascript:load('+cid+','+beforeNum+',\''+rname+'\')" class="threeword"><a href="javascript:void(0)">上一页</a></li>';
                lis+=fristPage;
                lis+=beforePage;
                /*
                一共展示10个页码,能够达到前5后4的效果
                如果前边不够5个,后边补齐10个
                如果后边不足4个,前面补齐10个
                */
                //定义开始位置begin,结束位置end
                var begin; //开始位置
                var end;  //结束位置
                //要显示10个页码
                if (pb.totalPage <10){
                    //总页码不够10页
                    begin = 1;
                    end = pb.totalPage;
                }else {
                    //超过10页
                    begin = pb.currentPage - 5;
                    end = pb.currentPage + 4;
                    //如果前边不够5个,后边补齐10个
                    if (begin < 1){
                        begin = 1;
                        end = begin + 9;
                    }
                    //如果后边不足4个,前面补齐10个
                    if (end > pb.totalPage){
                        end = pb.totalPage;
                        begin = end - 9;
                    }
                }
                for (var i = begin; i <=end ; i++) {
                    //判断当前页码是否等于i
                    var li;
                    if (pb.currentPage == i){
                        li = '<li class="curPage" onclick="javascript:load('+cid+','+i+',\''+rname+'\')"><a href="javascript:void(0)">'+i+'</a></li>';
                    }else {
                        //创建页码的li
                        li = '<li onclick="javascript:load('+cid+','+i+',\''+rname+'\')"><a href="javascript:void(0)">'+i+'</a></li>';
                    }
                    //拼接字符串
                    lis+=li;
                }

                var nextNum = pb.currentPage+1;
                if (nextNum>=pb.totalPage){
                    nextNum = pb.totalPage;
                }
                var lastPage = '<li onclick="javascript:load('+cid+','+nextNum+',\''+rname+'\')" class="threeword"><a href="javascript:void(0)">下一页</a></li>';
                var nextPage = '<li onclick="javascript:load('+cid+','+pb.totalPage+',\''+rname+'\')" class="threeword"><a href="javascript:void(0)">末页</a></li>';
                lis+=lastPage;
                lis+=nextPage;
                //将lis内容设置到ul
                $("#pageNum").html(lis);

                //2.列表数据展示
                var route_lis = "";
                for (var i = 0; i <pb.list.length; i++) {
                    //获取
                    var route = pb.list[i];
                    var li = '<li>\n' +
                        '                            <div class="img"><img src="'+route.rimage+'" style="width: 299px;"></div>\n' +
                        '                            <div class="text1">\n' +
                        '                                <p>'+route.rname+'</p>\n' +
                        '                                <br/>\n' +
                        '                                <p>'+route.routeIntroduce+'</p>\n' +
                        '                            </div>\n' +
                        '                            <div class="price">\n' +
                        '                                <p class="price_num">\n' +
                        '                                    <span>&yen;</span>\n' +
                        '                                    <span>'+route.price+'</span>\n' +
                        '                                    <span>起</span>\n' +
                        '                                </p>\n' +
                        '                                <p><a href="route_detail.html">查看详情</a></p>\n' +
                        '                            </div>\n' +
                        '                        </li>';
                    route_lis+=li;
                }
                $("#route").html(route_lis);
                //定位到页面的顶部
                window.scrollTo(0,0);
            });
        }
    </script>

点击搜索

 

 就有相关的信息

 

搜索

复制

标签:rname,cid,route,lis,查询,pb,旅游网,var,黑马
From: https://www.cnblogs.com/pengtianyang/p/16625180.html

相关文章

  • 序列查询新解
    https://www.acwing.com/problem/content/4284/#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;typedeflonglongLL;constin......
  • 使用mybatis的Criteria 查询、条件过滤用法
     借鉴博客:https://cloud.tencent.com/developer/article/1979972 1、如果业务查询中,有的条件要用括号()括起来达到想要的效果,如:第2个and后面的条件要括起来【此业......
  • 《黑马旅游网》综合案例(七)旅游线路分页展示后台代码
    旅游线路分页展示类别id传递header.html:中拿到cid//遍历数组for(vari=0;i<data.length;i++){varli='<li><ahr......
  • redis 慢查询
    redis慢查询慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程在慢查询的定义中,统计比较慢的时间段指的是命令执行这个步骤......
  • DNS 查询原理详解
    通过DNS查询,得到域名的IP地址,才能访问网站。那么,DNS查询到底是怎么完成的?本文通过实例,详细介绍背后的步骤。   一、DNS服务器 域名对应的IP地址,都保......
  • MySQL查询性能优化七种武器之索引下推
    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种武器之索引潜水MySQL查询性能优化七种武器之链路追踪今天要讲的是MySQL的另一种查......
  • 综合案例-黑马旅游网_退出功能
    综合案例-黑马旅游网_退出功能实现步骤:访问sevlet将session销毁跳转到登录页面代码实现前端代码<!--头部start--><script>$(function(){$.ge......
  • 综合案例-黑马旅游网_登录功能
    综合案例-黑马旅游网_登录功能分析   实现_Loginservletpackagecom.bai.web.servlet;importcom.bai.domain.ResultInfo;importcom.bai.domain.User;impor......
  • 【elasticsearch】elasticSearch数据库配置慢查询日志
    给elasticSearch引擎配置慢查询日志,可以实时监控搜索过慢的日志。虽然ElasticSearch以快速搜索而出名,但随着数据量的进一步增大或是服务器的一些性能问题,会有可能出现慢查......
  • 在线安全清空慢查询日志slow.log
    setglobalslow_query_log=0;showvariableslike'%slow_query%';setglobalslow_query.log_file='/app/data01/mysql/db/slow.log';setglo......