Ajax站内容搜索根据输入内容提示商品信息
2018-03-24 00:39
671 查看
动态效果:
JSP:<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ajax站内搜索提示</title>
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
<script src="jquery-1.11.3.min.js" type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
aria-expanded="false">
<span class="sr-only">Toggle navigation</span> <span
class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">首页</a>
</div>
<div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="product_list.htm">手机数码<span
class="sr-only">(current)</span></a></li>
<li><a href="#">电脑办公</a></li>
</ul>
<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input id="searchId" type="text" class="form-control" placeholder="Search" onkeyup="searchWord(this)">
<button type="submit" class="btn btn-default">Submit</button>
<!-- 展示栏提示搜索内容 -->
<div id="showId" style="position:absolute;z-index:1000;width:179px;border:1px solid #ccc;background:#fff">
</div>
</div>
</form>
<script type="text/javascript">
//当鼠标移动到选项上面时颜色改变
function overFn(obj){
$(obj).css("background","#DBEAF9");
}
function outFn(obj){
$(obj).css("background","#fff");
}
function clickFn(obj){
$("#searchId").val($(obj).html());
$("#showId").css("display","none");
}
function searchWord(obj){
//1. 获取用户输入的内容
var word=$(obj).val();
//2. 根据输入的内容去数据库模糊查询
var content="";
$.post(
"${pageContext.request.contextPath}/searchWord", //请求地址
{"word":word}, //提交的数据
function(data){ //请求成功后执行的方法
//3.将查询的商品信息展示在输入框下面
if(data.length>0){
//["小米 4c 标准版","小米 红米2A 增强版 白色","小米(MI)7.9英寸平板"]
//遍历数组分别将数组中的商品信息展示在提示栏
for(var i=0;i<data.length;i++){
content+="<div style='padding:5px;cursor:pointer' onclick='clickFn(this)' onmouseover='overFn(this)' onmouseout='outFn(this)'>"+data[i]+"</div>";
}
$("#showId").html(content);
$("#showDiv").css("display","block");
}
},
"json" //相应数据的类型
);
}
</script>
</div>
</div>
</nav>
</div>
</body>
</html>java:package ajax;
import java.io.IOException;
import java.security.interfaces.RSAKey;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import com.google.gson.Gson;
import utils.DataSourceUtils;
public class SearchWord extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取用户输入内容
String word = request.getParameter("word");
//2.根据输入内容模糊查询商品
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select * from product where pname like ? limit 0,8";
List<Object> products=new ArrayList<Object>();
try {
products = runner.query(sql, new ColumnListHandler("pname"), "%"+word+"%");
} catch (SQLException e) {
e.printStackTrace();
}
//3.将查询结果集转换成json格式并返回给前台
Gson gson=new Gson();
String json = gson.toJson(products);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(json);;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
JSP:<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ajax站内搜索提示</title>
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
<script src="jquery-1.11.3.min.js" type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
aria-expanded="false">
<span class="sr-only">Toggle navigation</span> <span
class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">首页</a>
</div>
<div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="product_list.htm">手机数码<span
class="sr-only">(current)</span></a></li>
<li><a href="#">电脑办公</a></li>
</ul>
<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input id="searchId" type="text" class="form-control" placeholder="Search" onkeyup="searchWord(this)">
<button type="submit" class="btn btn-default">Submit</button>
<!-- 展示栏提示搜索内容 -->
<div id="showId" style="position:absolute;z-index:1000;width:179px;border:1px solid #ccc;background:#fff">
</div>
</div>
</form>
<script type="text/javascript">
//当鼠标移动到选项上面时颜色改变
function overFn(obj){
$(obj).css("background","#DBEAF9");
}
function outFn(obj){
$(obj).css("background","#fff");
}
function clickFn(obj){
$("#searchId").val($(obj).html());
$("#showId").css("display","none");
}
function searchWord(obj){
//1. 获取用户输入的内容
var word=$(obj).val();
//2. 根据输入的内容去数据库模糊查询
var content="";
$.post(
"${pageContext.request.contextPath}/searchWord", //请求地址
{"word":word}, //提交的数据
function(data){ //请求成功后执行的方法
//3.将查询的商品信息展示在输入框下面
if(data.length>0){
//["小米 4c 标准版","小米 红米2A 增强版 白色","小米(MI)7.9英寸平板"]
//遍历数组分别将数组中的商品信息展示在提示栏
for(var i=0;i<data.length;i++){
content+="<div style='padding:5px;cursor:pointer' onclick='clickFn(this)' onmouseover='overFn(this)' onmouseout='outFn(this)'>"+data[i]+"</div>";
}
$("#showId").html(content);
$("#showDiv").css("display","block");
}
},
"json" //相应数据的类型
);
}
</script>
</div>
</div>
</nav>
</div>
</body>
</html>java:package ajax;
import java.io.IOException;
import java.security.interfaces.RSAKey;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import com.google.gson.Gson;
import utils.DataSourceUtils;
public class SearchWord extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取用户输入内容
String word = request.getParameter("word");
//2.根据输入内容模糊查询商品
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select * from product where pname like ? limit 0,8";
List<Object> products=new ArrayList<Object>();
try {
products = runner.query(sql, new ColumnListHandler("pname"), "%"+word+"%");
} catch (SQLException e) {
e.printStackTrace();
}
//3.将查询结果集转换成json格式并返回给前台
Gson gson=new Gson();
String json = gson.toJson(products);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(json);;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
相关文章推荐
- 1.读取excel文件,将输入存储到数据库中(JXL) 2.完成商品的检索相关功能 1.根据分类,显示分类下所有的商品信息,按照库存量从低到高排序(提供补货依据) 2.模糊搜索,根据商品信息(名
- ios中,在SearchBar里面搜索内容,可根据内容来查找所需的信息资源,可获得SearchBar中的内容
- jquery+php实现用户输入搜索内容时自动提示
- jquery 输入框 根据输入内容检索 下拉提示
- 根据输入的中文的搜索其拼音相似的内容
- 在winform中向textbox输入内容时下面有提示信息,效果如图所示:
- kindeditor获取内容,清空,设置kindeditor输入提示信息
- jquery+php实现用户输入搜索内容时自动提示
- 商品搜索——输入联想|智能提示探索
- jquery+php实现用户输入搜索内容时自动提示
- 文本框输入内容时,里面的提示信息自动消失 css
- 商品搜索——输入联想|智能提示探索
- 商品搜索——输入联想|智能提示探索
- 测试使用jq的无alert检测提示form输入内容错误信息方法
- textbox填入后验证输入的合法或根据输入的内容失去焦点后立即得出其他信息
- 商品搜索——输入联想|智能提示探索
- 输入搜索词出现提示信息供选择
- HTML angular购物车:加减按钮改变数量+全选+低于1时提示删除商品+计算所有商品总价+清空购物车+单独删除+输入内容小于1时,自动变为1+反选
- 编写程序,用if else语句根据姓名查询teaching数据库中学生的基本信息和选课信息,学生姓名通过变量输入。不存在则输出提示信息
- ExpandableListView 根据输入的名称搜索对应的内容并展示,点击可打开二级列表