JavaWeb-旅游网-线路搜索
程序员文章站
2024-03-07 15:37:33
...
JavaWeb-旅游网-注册和登录
JavaWeb-旅游网-导航条和分页展示
JavaWeb-旅游网-详情展示
JavaWeb-旅游网-点击收藏
功能: 用户在框搜索输入想去的地址,页面显示对应地址的旅游线路
可以采用模糊查询完成该功能,后台接收到cid和rname后,对数据库进行模糊查询,随后把数据封装成json格式响应个前端,前端解析数据并展示。
在上一个分页的展示数据的基础上进行拓展,加入rname参数,在获取rnam参数时需要对其解码,否则拿到的是乱码
// var search = location.search;
// var cid = search.split("=")[1];
var cid = getParameter("cid");
var rname = getParameter("rname");
if (rname){
//对rname进行解码
rname = window.decodeURIComponent(rname);
}
//如果当前是首页的话,cid设置为0
if (cid == "null"){
cid = 0;
}
load(cid,null,rname);
});
//搜索功能
$("#search-button").click(function () {
var rname = $("#search_input").val();
//获得当前的旅游种类的cid
var cid = getParameter("cid");
location.href="http://localhost/travel/route_list.html?cid="+cid+"&rname="+rname;
})
前端的数据解析和展示与之前分页数据展示相同,这里就不在赘述了,直接讲后台的查询
后台要做的就是,如何判断该进行带cid和rname的查询还是不带。代码如下,判断中有个 “null”.equals(rname) 这是因为rname没有值时,再获取rname,JavaScript会给它一个null,这个不是空null而是字符串的"null"
/**
* 查收数据总数
* @param cid
* @param rname
* @return
*/
@Override
public int findTotalCount(int cid,String rname) {
// String sql = "select count(*) from tab_route where cid = ?";
String sql = "select count(*) from tab_route where 1=1 ";
StringBuilder sb = new StringBuilder(sql);
List params = new ArrayList();
if(0 != cid){
//如果当前的页面种类不上首页就加上cid
sb.append(" and cid = ?");
params.add(cid);
}
//如果rame不为空或者不为null就加上rname进行模糊查询
if (null != rname && 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());
}
/**
* 获取数据段
* @param cid
* @param start
* @param pageSize
* @param rname
* @return
*/
@Override
public List<Route> findByPage(int cid, int start, int pageSize,String rname) {
// String sql = "select * from tab_route where cid = ? limit ? , ?";
String sql = "select * from tab_route where 1 =1 ";
StringBuilder sb = new StringBuilder(sql);
List params = new ArrayList();
//如果当前的页面种类不上首页就加上cid
if(0 != cid){
sb.append(" and cid = ?");
params.add(cid);
}
//如果rame不为空或者不为null就加上rname进行模糊查询
if (null != rname && 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.class),params.toArray());
}
查询到数据响应给前端解析展示即可
上一篇: 基于axios的二次封装
下一篇: php四种定界符详解