Ajax實現搜尋引擎自動補全功能
上程式碼:
搜素框
Search <input
type="text" name="name" class="inputtable"
id="name" />
<input type="image" src="images/serchbutton.gif"
border="0" style="margin-bottom:-4px">
顯示模糊查詢結果div。設定背景色為白色,絕對佈局。並且預設不顯示。
<div id="context1" style="background-color:white; border: 1px solid red;width:128px;position: absolute;top: 133px;left:944px;display:none" >
</div>
我們要為搜尋框設定鍵盤擡起事件(keyup),然後就是Ajax實現非同步互動。
$(".inputtable").keyup(function(){
var content=$(this).val();
//如果當前搜尋內容為空,無須進行查詢
if(content==""){
$("#context1" ).css("display","none");
return ;
}
//由於瀏覽器的快取機制 所以我們每次傳入一個時間
var time=new Date().getTime();
$.ajax({
type:"get",
//新建一個名為findBooksAjaxServlet的servlet
url:"${pageContext.request.contextPath}/servlet/findBooksAjaxServlet",
data:{name:content,time:time},
success:function (data){
//拼接html
var res=data.split(",");
var html="";
for(var i=0;i<res.length;i++){
//每一個div還有滑鼠移出、移入點選事件
html+="<div onclick='setSearch_onclick(this)' onmouseout='changeBackColor_out(this)' onmouseover='changeBackColor_over(this)'>"+res[i]+"</div>";
}
$("#context1").html(html);
//顯示為塊級元素
$("#context1").css("display","block");
}
});
});
我們的滑鼠在選擇到自動補全的內容時,我們會發現內容的那一行會變色,即onmouseover事件,離開時恢復原色onmouseout事件,點選時將內容填寫到搜尋框onclick事件。所以在上面的程式碼中我們會這樣寫
var html="";
for(var i=0;i<res.length;i++){
//每一個div還有滑鼠移出、移入點選事件
html+="<div onclick='setSearch_onclick(this)' onmouseout='changeBackColor_out(this)' onmouseover='changeBackColor_over(this)'>"+res[i]+"</div>";
}
而其三種事件對應的js程式碼如下:
//滑鼠移動到內容上
function changeBackColor_over(div){
$(div).css("background-color","#CCCCCC");
}
//滑鼠離開內容
function changeBackColor_out(div){
$(div).css("background-color","");
}
//將點選的內容放到搜尋框
function setSearch_onclick(div){
$(".inputtable").val(div.innerText);
$("#context1").css("display","none");
}
servlet:向server呼叫相應的業務然後返回查詢的結果
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//獲取搜尋框輸入的內容
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"), "utf-8");
//向server層呼叫相應的業務
BooksServer booksServer=new BooksServer();
String res=booksServer.findBooksAjax(name);
//返回結果
response.getWriter().write(res);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
service層
把dao層查詢的所有書名拼接為一個字串。
//查詢所有的書本名
public String findBooksAjax(String name) {
List<Object> nameList=booksDao.findBooksAjax(name);
String res="";
for (int i=0;i<nameList.size();i++) {
if(i>0){
res+=","+nameList.get(i);
}else{
res+=nameList.get(i);
}
}
return res;
}
dao層
根據部分書名,查詢類似的書名
//根據部分書名,查詢類似的書名
public List<Object> findBooksAjax(String name) {
QueryRunner qr=new QueryRunner(C3P0Util.getDataSource());
try {
return qr.query("select name from book where name like ?", new ColumnListHandler(),"%"+name+"%");
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
相關推薦
Ajax實現搜尋引擎自動補全功能
上程式碼: 搜素框 Search <input type="text" name="name" class="inputtable" id="name" />
第三百六十八節,Python分布式爬蟲打造搜索引擎Scrapy精講—elasticsearch(搜索引擎)用Django實現搜索的自動補全功能
技術 django 分布 全功能 -s col ron 搜索 創建 第三百六十八節,Python分布式爬蟲打造搜索引擎Scrapy精講—用Django實現搜索的自動補全功能 elasticsearch(搜索引擎)提供了自動補全接口 官方說明:https://www
【easyui-combobox】下拉菜單自動補全功能,Ajax獲取遠程數據源
combo -c -o efi 字段 data app script resp 這個是針對easyUI的下拉菜單使用的,Ajax獲取遠程數據源 HTML 頁面 <input id="uname" name="uname" class="easyui-combo
jquery的輸入框自動補全功能+ajax
image -- spa 數據 adding box utf 分類 .com jquery的輸入框自動補全功能+ajax 2017年05月10日 18:51:39 辣姐什麽鬼 閱讀數:1461 標簽: web前端 更多 個人分類: web前端
jupyter notebook自動補全功能實現
Jupyter notebook使用預設的自動補全是關掉的。要開啟自動補全,需修改預設配置。 命令列中輸入:ipython profile create 以上命令會在~/.ipython/profile_default/目錄下生成ipython_config.py和ipython_kern
Android實現登入郵箱的自動補全功能
先看下效果圖: 只要輸入到@符,就會開始聯想郵箱,樣式可以自己定義。 下面看下主要的程式碼: //這個就是我們繼承自MultiAutoCompleteTextView實現我們自定義的郵箱聯想元件 public class MailBoxAssociateView
Jquery實現自動補全功能
今天因為公司全去搞活動了,所以在網上看了一會兒jquery,在這裡詳細介紹一下基於jquery的autoComplete的實現。 首先,向大家看下自己實現的最簡單的結果: ![簡單效果](https://img-blog.csdn.net/201
asp.net + ajax + sqlserver 自動補全功能
程式碼下載頁面:http://download.csdn.net/detail/zhanghui_hn/6994105 說明:資料庫連線字串在web.config檔案中,為方便執行使用的是官方的Northwind資料庫。 參考(向其作者致敬): ² http://ww
【輸入智慧提示功能】PHP+jQuery實現自動補全功能
前面手工寫了一個下拉自動補全功能,寫的簡單,只實現了滑鼠選擇的功能,不支援鍵盤選擇。由於專案很多地方要用到這個功能,所以需要用心做一下。發現select2這個外掛的功能可以滿足當前需求。 在使用jquery外掛select2的過程中遇到了一些疑惑,無論是穿json資料還
開啟mac terminal 命令/路徑自動補全功能
terminal 自動 menu 技術分享 bsp con 命令行 win big 用慣了windows命令行工具的按Tab自動補全路徑功能後,在mac terminal上敲命令很不習慣。其實mac terminal也有這個功能。 在命令行輸入nano .inputrc
pycharm代碼自動補全功能
har hit png parent bnl padding ans charm orm pycharm具有代碼自動補全的功能。無意中將其功能關閉,百度了好久才解決掉,所以把這次失誤記錄下來。那麽我們怎麽打開呢?在軟件的左上角找到File-》Power Save Mode,
Mac上git自動補全功能
怎麽 pro 執行 發現 文件中 -o 命名 重啟 vpd 在Mac上安裝了git之後,發現命令不能自動補全,使用起來非常不方便,本文介紹怎麽讓git命令能夠自動補全。 確保bash能夠自動補全在終端(本文使用的是OS X的終端)執行如下命令: brew list 看看是否
Eclipse自動補全功能輕松設置
自動提示 net img ces 自動補全 會有 tails trigger csdn Eclipse自動補全功能輕松設置 1.打開Eclipse->Window->Perferences 2.找到Java下的Editor下的Content Assist,右邊
eclipse自動補全功能的缺陷
這周在做一些程式碼的重構,在重構的過程中,踩了一個eclipse的大坑!這裡記錄一下 在eclipse裡寫java程式碼,你寫好方法名字,再來個回車,eclipse會自動幫你把方法的引數給補全,補全的引數跟你在補全方法定義的引數名字“一致”,即我認為的效果是這樣的 p
kubectl命令自動補全功能
share -o ffffff img water process 避免 shadow 命令補全 我們在管理k8s集群的時候,避免不了使用kubectl命令工具,但是該命令還是挺復雜的,使用中也記不住那麽多的api選項,故這裏介紹一下kubectl命令補全工具的安裝。 1:
在eclipse中設定編碼自動補全功能
如果你用過Visual Studio的自動補全功能後,再來用eclipse的自動補全功能,相信大家會有些許失望。 但是eclipse其實是非常強大的,eclipse的自動補全沒有VS那麼好是因為eclipse的補全功能用的是預設設定。你只需要稍微修改一下就行了。 最簡單的修改方式是:Wi
微信小程式搜尋框自動補全功能
▶動態效果圖◀ ▶效果涉及到的input屬性◀ focus Boolean false 獲取焦點 bindinput &nb
PySide QLineEdit自動補全功能
#-*- coding:utf-8 -*- from PySide.QtGui import * from PySide.QtCore import * import math import sys import re import os impor
Eclipse中的文字自動補全功能(Java、html、javascript)
文字很枯燥,希望正在閱讀的您靜下心來細細的閱讀,跟著我的12345一步一步往下走,you will get success! 1.開啟eclipse→Windows→Preferences→Java→Editor→Content Assist 修改Auto Activat
讓vim支援c++程式碼自動補全功能。
vim在預設情況下是沒有這個功能的,我們需要下載一個外掛和一個軟體來實現這個功能。 外掛:omnicppcomplete 軟體:ctags ctags一般系統預設就有。 下載並安裝外掛 omnicppcomplete: 解壓:unzip omincppcomplete.zip -d ~/.vim omnicp