SpringBoot随记--搜索框功能的维护与实现

搜索框功能的维护与实现。

今天在维护项目的时候遇到了一个需求:实现一个搜索框的功能,需要能从数据库取值并在前端页面解析显示出来。

在这里插入图片描述

这边是前端的大哥做好的样式(虽然大哥犯懒也是用的之前的模板hhh)

然后就是喜闻乐见的连数据库,后台改代码环节。首先是从web前端定位一下(这个项目是我在维护,所以有很多写好的东西,如果要改需求的话需要先找到位置再改)

<input type="text" id="searchInput" name="searchstr" class="textbox" size="20" placeholder="关键词">
<input type="button" value="检索" onclick="searchJyzz()" class="sbttn">
<input type="button" value="退出" onclick="$('#searchInput').val('')" class="sbttn sbttn1" hidden="" id="searchTc">

先不管别的,这个搜索框的传值需要通过“searchInput"字段来实现,那么在后端看一下。

    function Search(){
        let searchText = $("#searchInput").val();
        if(searchText!=null && searchText!=""){
            let pList = [];
            pList = xxList.filter((p) => {
                return p.placeName.indexOf(searchText) > -1;
            });
            allPageList(pList);
            $("#searchInput").val(searchText)
        }else{
            alert("请输入内容再进行查询");
        }

这边是通过一个function来实现的,(至于为什么之前开发的老哥把SearchInput这么引进来我也不太清楚。)那么好,下一步就是维护这个程序里缺失的部分,pList在这里定义了,那么也就是xxList、allPageList()需要进行引入。

//xxList作为一个数组变量,在这段之前有一个判断的分支,题主和zz一样只写了if{}里的内容,而忘记了else{},绷不住了。

function allPageList(pList){
        $("#searchInput").val("")
        let dataLength = pList.length;
        let tempList  =  $("#placeListTemplate").html();
        let template = Handlebars.compile(tpl);
        let aplaceList = getPageData(pList, itemsOnPage, 1);
        let html = template(aplaceList);
        $('#showBox').html(html);
        if(dataLength==0){
            $('#totalNum').html("暂无数据");
        }else{
            $('#totalNum').html("共" + dataLength + "条数据");
        }
        resetMarkers();
        cacheMarkers(pList);
        postMarker();
        $('.pageContainer').pagination({
            items: dataLength,
            itemsOnPage: itemsOnPage,
            cssStyle: 'light-theme',
            prevText: '上一页',
            nextText: '下一页',
            onPageClick: function(pageNumber, event) {
                let pll = getPageData(pL, itemsOnPage, pageNumber);
                html = template(pllist);
                $('#showBox').html(html);
                resetMarkers();
                cacheMarkers(pllist);
                postMarker();
                return false;
            }
        });
    }

这边就是刚才缺失的allPageList()函数,引入完后端这边基本搞定了。
(然后去吃饭了hh,下午基本是在和经理扯皮搞前端页面部分的东西)

其中遇到的问题

1.我数据(黑切)呢??!!
如上刚引完数据,连了数据库,打开前端一看,不是哥们,我数据呢?
在这里插入图片描述
数据没有,那就打断点,在F12一番以后发现了问题(xxList走了else那一步,导致后端没给xxList赋值,前端很冤,你不给我数据我怎么显示啊)
在else里搞完,OK有数据了。

2.这数据它真有吗?如有嘛!
搞完发现左边的搜索栏里,只有一项,第二项死活出不来。回想一下,哦昨天改字段了,源码里面没修改。

<p>项目名称:{{extValues.xmmc}}</p>
<p>地点:{{addr}}</p>

(这还有个坑,数据库的表里不会直接存一个xmmc之类的字段,为了数据安全什么乱七八糟的,而是存在一个总的叫做extValues的字段里面。(写数据库表的人是一颗代码糖不给留啊沃柑)
改完基本没事了。

3.好了我编不下去了大哥你让我睡觉吧球球了

这里是J0hnnyF1sh,谢谢你看我的文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值