一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用jquery+ajax+php實現(xiàn)搜索框的功能

 黃三歲大愛人生 2018-03-20

我們每天瀏覽網(wǎng)頁都能見到搜索框


搜索框的原理:

客戶端:輸入要搜索的關(guān)鍵字于文本框,然后文本框?qū)㈥P(guān)鍵字獲取,使用ajax發(fā)送請求到服務(wù)端,然后根據(jù)服務(wù)端返回來的信息顯示到一個div中

服務(wù)端:接收傳過來的數(shù)據(jù),然后在數(shù)據(jù)庫中搜索,再返回數(shù)據(jù)給客戶端


首先是客戶端

新建一個輸入框

  1. <input  type="text" id="keyword" name="keyword" />  

在輸入框的下面創(chuàng)建一個div,先讓他隱藏起來

  1. <div id="searchBox" display: none"></div>  

注:搜索框的定位可以使用絕對定位,定在輸入框的下面,搜索按鈕可以加在輸入框的旁邊,同樣也是使用絕對定位


接下來是使用jq發(fā)送ajax請求(這里使用的是json格式的數(shù)據(jù))

[javascript] view plain copy
print?
  1. <script>  
  2.     $(document).ready(function(){  
  3.         var xhr=null;  
  4.         $('input[name="keyword"]').keyup(function() {  
  5.               if(xhr){  
  6.                   xhr.abort();//如果存在ajax的請求,就放棄請求  
  7.               }  
  8.             var inputText= $.trim(this.value);  
  9.             if(inputText!=""){//檢測鍵盤輸入的內(nèi)容是否為空,為空就不發(fā)出請求  
  10.             xhr=$.ajax({  
  11.                 type: 'GET',  
  12.                 url: 'service/suggestion.php',  
  13.                 cache:false,//不從瀏覽器緩存中加載請求信息  
  14.                 data: "keyword=" + inputText,//向服務(wù)器端發(fā)送的數(shù)據(jù)  
  15.                 dataType: 'json',//服務(wù)器返回數(shù)據(jù)的類型為json  
  16.                 success: function (json) {  
  17.                     if (json.length != 0) {//檢測返回的結(jié)果是否為空  
  18.                         var lists = "<ul>";  
  19.                         $.each(json, function () {  
  20.                             lists += "<li>"+this.pd_name+"</li>";//遍歷出每一條返回的數(shù)據(jù)  
  21.                         });  
  22.                         lists+="</ul>";  
  23.   
  24.                         $("#searchBox").html(lists).show();//將搜索到的結(jié)果展示出來  
  25.   
  26.                         $("li").click(function(){  
  27.                             $("#keyword").val($(this).text());//點擊某個li就會獲取當(dāng)前的值  
  28.                             $("#searchBox").hide();  
  29.                         })  
  30.   
  31.                     } else {  
  32.                         $("#searchBox").hide();  
  33.                     }  
  34.   
  35.   
  36.                 }  
  37.   
  38.             });  
  39.             }else{  
  40.                 $("#searchBox").hide();//沒有查詢結(jié)果就隱藏搜索框  
  41.             }  
  42.         }).blur(function(){  
  43.             $("#searchBox").hide();//輸入框失去焦點的時候就隱藏搜索框  
  44.         });  
  45.   
  46.     });  
  47. </script>  


服務(wù)端使用php語句連接數(shù)據(jù)庫,然后進行查詢(這里使用的是PDO連接的方法)

  1. <?php  
  2. session_start();  
  3.   
  4. function connectDb(){//連接數(shù)據(jù)庫的函數(shù)  
  5. $db_server="localhost";  
  6. $db_name="test";//數(shù)據(jù)庫的名稱  
  7. $db_user="root";//數(shù)據(jù)庫的用戶名,不同的用戶權(quán)限不同  
  8. $db_pwd="";//數(shù)據(jù)庫的密碼  
  9. $dsn="mysql:host=$db_server;dbname=$db_name;charset=utf8";//使用PDO的方法連接數(shù)據(jù)庫  
  10.   
  11. try{  
  12. $connect=new PDO($dsn,$db_user,$db_pwd,array(PDO::ATTR_PERSISTENT=>true));//如果需要數(shù)據(jù)庫長連接,需要最后加一個參數(shù)  
  13.   
  14. }  
  15. catch(PDOException $e){  
  16.     exit('數(shù)據(jù)庫連接失敗');  
  17. }  
  18.     return $connect;  
  19.   
  20. }  
  21.   
  22. function test($keyword){//從數(shù)據(jù)庫中查找關(guān)鍵字的函數(shù)  
  23. $db=connectDb();  
  24. $result=$db->prepare("select 字段名 from 數(shù)據(jù)庫名字 where 字段名 like ?");  
  25. $result->bindParam(1,$keyword);//第一個問號的值  
  26. $result=>execute;  
  27.   
  28. return $result->fetchAll(PDO::FETCH_ASSOC);  
  29.   
  30.   
  31. }  
  32.   
  33. $keyword=$_GET['keyword'];//獲取輸入框的內(nèi)容  
  34.   
  35. $suggestion=test($keyword);  
  36.   
  37. echo json_encode($suggestion);//輸出查詢的結(jié)果(json格式輸出)  
  38.   
  39. ?>  


注:服務(wù)端的函數(shù)最好寫在別的頁面,方便管理。


這樣,搜索框的功能就能實現(xiàn)了。學(xué)習(xí)筆記,僅供參考~~





    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美一区日韩一区日韩一区| 国产又爽又猛又粗又色对黄| 免费性欧美重口味黄色| 老外那个很粗大做起来很爽| 欧美老太太性生活大片| 91欧美一区二区三区成人| 青青操在线视频精品视频| 日本熟妇五十一区二区三区| 国产乱淫av一区二区三区| 色婷婷视频国产一区视频| 在线观看那种视频你懂的| 东京热男人的天堂社区| 色婷婷久久五月中文字幕| 午夜精品黄片在线播放| 国产一级片内射视频免费播放| 精品国产日韩一区三区| 国产综合欧美日韩在线精品| 熟女乱一区二区三区丝袜| 欧美大胆女人的大胆人体| 视频一区中文字幕日韩| 国产精品伦一区二区三区四季 | 97人妻精品免费一区二区| 亚洲综合色婷婷七月丁香| 91偷拍视频久久精品| 国产精品一区二区日韩新区| 国产中文字幕一区二区| 在线观看视频日韩精品| 一区二区福利在线视频| 成人精品一级特黄大片| 99视频精品免费视频| 久久99精品日韩人妻| 亚洲免费观看一区二区三区| 91熟女大屁股偷偷对白| 亚洲欧美日韩国产综合在线| 国产成人高清精品尤物| 久久99爱爱视频视频| 欧美亚洲综合另类色妞| 丝袜av一区二区三区四区五区| 久久国内午夜福利直播| 亚洲欧洲日韩综合二区| 欧美六区视频在线观看|