激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Ajax實現搜索引擎自動補全功能

Ajax實現搜索引擎自動補全功能

2020-09-06 15:23甄情 Java教程

本文主要介紹了Ajax實現搜索引擎自動補全功能的實例解析。具有很好的參考價值。下面跟著小編一起來看下吧

每當我們遇到一些問題時候,我們會百度一下,你是有過我們的問題還沒打完就已經出現的經歷?

如下圖:

Ajax實現搜索引擎自動補全功能

天貓:

Ajax實現搜索引擎自動補全功能

京東:

Ajax實現搜索引擎自動補全功能

這時候的你是否想到如何實現這個功能?

我們的網頁明明沒有刷新,可是卻出現了數據的交互,也就是ajax的強大之處。

下面以一個例子來實現。

搜索框和搜索按鈕,我們希望在搜索框輸入部分書名時,能夠實現書名的自動補全功能。每當點擊了相應的書名,就把內容輸入到搜索框。

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實現異步交互。

js代碼:

$(".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實現搜索引擎自動補全功能

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://blog.csdn.net/su20145104009/article/details/63279276

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 羞羞视频免费网站男男 | 国产精品视频六区 | 国产午夜小视频 | 国产午夜精品久久久久久免费视 | 免费黄色在线观看网站 | 色综合一区二区 | 中文在线观看视频 | 欧美一级高潮 | 久久久久国产一区二区三区不卡 | 国产午夜精品久久久 | 日本在线播放一区二区三区 | 激情网站免费观看 | 国产高清成人久久 | 欧美精品免费一区二区三区 | 99re66热这里只有精品8 | 天堂精品| 欧产日产国产精品99 | 中国免费一级毛片 | www69xxxxx| 欧美激情综合网 | 久久久久无码国产精品一区 | 99精品在线观看 | 毛片免费视频观看 | 国产精品毛片va一区二区三区 | 亚洲精品午夜国产va久久成人 | 经典三级在线视频 | 国产一级毛片高清视频 | 精品久久久久久综合日本 | 欧美日韩一区,二区,三区,久久精品 | 性欧美videos 另类喷潮 | www.com香蕉 | 毛片在线免费播放 | 久久久久999| 亚洲成人福利在线 | 欧美日韩影视 | 想要xx在线观看 | 成人男女啪啪免费观看网站四虎 | 一级毛片在线观看视频 | 久久久久久中文字幕 | 毛片网站网址 | 亚洲成人福利在线 |