首頁 php教程 php手册 php+jquery 实现搜索提示功能实例

php+jquery 实现搜索提示功能实例

Jun 13, 2016 am 09:51 AM
google 功能 發現 實例 實現 我們 提示 搜尋 朋友 百度 輸入

用百度或google的朋友会发现只要我们输入一个字他们智能给我们提示相关的搜索引擎,这样我今天因为工作需要也要做一个这类的功能,下面我整理了两种关于jquery 实现用户输入搜索内容时自动提示实例,希望对大家有帮助。

今天突然想给本站做个搜索页面,这样用户可以通过搜索来找到自己喜欢的内容,也避免了在海量信息中手动查找资源的麻烦,我的目标和百度首页的效果类似,当用户输入要搜索的文字时,我们在下方给出相关的十条信息,如果用户要找的就是这十条信息内的某一条,那么简单,直接点击就可在新页面中打开页面,主要就是想更人性化一点,让用户使用起来更方便。

先看一下效果图吧,这样更有动力,要不然大家还不知道我在讲什么,到底要达到什么样的效果!

下面先主要讲解原理:

在search.html页面中,用户在搜索框内输入“j”时,使用javascript获取搜索框的文本内容,到数据库中查找相关的内容并返回,再使用javascript将服务器返回的结果显示在搜索框下面的提示框内,供用户参考选择。

具体的实现方法:

首先在页面中做好搜索框、搜索按钮、显示搜索提示的层,如下代码

 代码如下 复制代码


使用浏览器浏览页面,会看到下图的效果

 

看起来很普通,没什么样式,现在稍作样式上的调整

 代码如下 复制代码

#search{font-size:14px;}
#search .k{padding:2px 1px; width:320px;} /*将搜索框宽度设置大点*/

再将显示搜索提示的层样式调整一下,由于搜索提示层在搜索框正下方,所以我们设置其定位方式为绝对定位

 代码如下 复制代码

#search_auto{border:1px solid #817FB2; position:absolute;} /*设置边框、定位方式*/

接着用JS将搜索提示层的位置放置在搜索框正下方,且宽度和搜索框相同,这里我们采用jQuery来解决

 代码如下 复制代码

$(‘#search_auto’).css({‘width’:$(‘#search input[name="k"]‘).width()+4});

搜索提示层的位置和宽度已经确定好了,由于在用户没有输入搜索文字前这个提示框是不显示的,所以我们先要将它设置成隐藏,在提示层的样式里加上display:none将其隐藏。

已经全部OK了,现在只要给搜索框的onkeyup注册事件即可,我们依然采用jQuery来处理,在jQuery中是keyup

 代码如下 复制代码

$('#search input[name="k"]').keyup(function(){
$.post('search_auto.php',{'value':$(this).val()},function(data){  //向服务器上的search_auto.php发送post数据,$.post是jQuery的方法
if(data=='0') $('#search_auto').html('').css('display','none');  //判断服务器上返回的数据,如果等于0,则表示没有找到相关的内容,所以将提示框的内容清空并隐藏
else $('#search_auto').html(data).css('display','block');  //如果服务器上返回的数据不等于0,则将返回的内容放到提示框内并显示提示框
});
});

上面客户端已经做好了,已经可以将用户输入的内容发送到服务器端,并响应服务器的返回值。

那么服务器端如何处理客户端发送来的数据呢,下面用PHP来举个例子

 代码如下 复制代码

$v=$_POST[value];
$re=mysql_query("select * from test where title like '%$v%' order by addtime desc limit 10");  //根据客户端发送来的数据,到数据库中查询10条相关的结果
if(mysql_num_rows($re) echo '

    ';
    while($ro=mysql_fetch_array($re)) echo '
  • '.$ro[title].'
  • ';  //将查询得到的相关结果的标题输出,这个地方需要注意,由于通过jQuery的ajax技术返回的文本是UTF-8编码,所以如果$ro[title] 中包含中文,一定要记得用PHP的iconv或其它函数将其转换成UTF-8编码,否则在页面中看到的会是一串乱码
    echo '
  • 关闭& gt;
  • ';  //输入一个关闭按钮,让用户不想看到提示层时可以点击关闭,关闭按钮采用jQuery,解释一下,当前点击的按钮是$(this),一直向上找到其第三个父元素,让它逐渐消失
    echo '
';
?>

现在服务器已经可以正确的执行我们发送过去的数据了,并且返回相应的结果,那么现在在搜索框内输入一个文字测试一下吧,但前提是你的数据库中得有与这个文字相关的内容啊,要不然你也看不到提示框的出现,因为没有相关提示内容啊,呵呵。

可是还有点美中不足,那就是提示框里面的内容不美观,和我们在百度搜索中看到的提示框相比,简直是太丑了,哈哈,不急,我们再用css来调整显示的效果

 代码如下 复制代码

#search_auto li{background:#FFF; text-align:left;} /*设置提示框内的li标签效果*/
#search_auto li.cls{text-align:right;} /*设置提示框内的关闭按钮效果*/
#search_auto li a{display:block; padding:5px 6px; cursor:pointer; color:#666;} /*设置提示框内li标签下的a标签效果*/
#search_auto li a:hover{background:#D8D8D8; text-decoration:none; color:#000;} /*当鼠标移入提示框内时的效果*/

现在才算是真正的完全制作完成,至于要不要设置一个延迟处理,或是其它更完善的功能,留给朋友们自己开动脑筋了,大家也可以在下面回复你的想法,等等。

客户端完整代码:

 代码如下 复制代码




jquery+php实现用户输入搜索内容时自动提示






<script><br /> $(function(){</script>

$('#search_auto').css({'width':$('#search input[name="k"]').width()+4});
$('#search input[name="k"]').keyup(function(){
$.post('search_auto.php',{'value':$(this).val()},function(data){
if(data=='0') $('#search_auto').html('').css('display','none');
else $('#search_auto').html(data).css('display','block');
});
});

});

 

服务器端完整代码:

 代码如下 复制代码

$v=$_POST[value];
$re=mysql_query("select * from test where title like '%$v%' order by addtime desc limit 10");
if(mysql_num_rows($re) echo '

';
?>


方法二,使用jquery.input_complete插件了,这个非常简单

 代码如下 复制代码


html只要简单的

 代码如下 复制代码

tt" class="sel_quy" autocomplete="off" />

注意这里在里的ID必须TT哦,这个你可以自己定义名字,同时jquery.input_complete插件与jquery大家自己去下载吧。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Google Pixel 9 Pro XL 接受桌面模式測試 Google Pixel 9 Pro XL 接受桌面模式測試 Aug 29, 2024 pm 01:09 PM

Google在 Pixel 8 系列中引入了 DisplayPort 替代模式,並且在新推出的 Pixel 9 系列中也採用了該模式。雖然它主要是為了讓您透過連接的螢幕鏡像智慧型手機顯示,但您也可以將其用於桌面

谷歌向大多數用戶開放 AI Test Kitchen & Imagen 3 谷歌向大多數用戶開放 AI Test Kitchen & Imagen 3 Sep 12, 2024 pm 12:17 PM

谷歌的 AI Test Kitchen 包括一套供用戶使用的 AI 設計工具,現已向全球 100 多個國家的用戶開放。此舉標誌著世界各地的許多人第一次能夠使用 Imagen 3、Googl

deepseek網頁版入口 deepseek官網入口 deepseek網頁版入口 deepseek官網入口 Feb 19, 2025 pm 04:54 PM

DeepSeek 是一款強大的智能搜索與分析工具,提供網頁版和官網兩種訪問方式。網頁版便捷高效,免安裝即可使用;官網則提供全面產品信息、下載資源和支持服務。無論個人還是企業用戶,都可以通過 DeepSeek 輕鬆獲取和分析海量數據,提升工作效率、輔助決策和促進創新。

Google確認 Pixel 9 Pro Fold 因設計奇特而與官方無線充電配件不相容 Google確認 Pixel 9 Pro Fold 因設計奇特而與官方無線充電配件不相容 Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold 類似於谷歌新生的可折疊部門的大轉變。事實上,Pixel 9 Pro Fold 和 Pixel Fold 之間的差異如此之大,以至於前者更多地與 OnePlus Open 進行比較(A 上的價格為 1,399.99 美元)

ai工具推薦 ai工具推薦 Nov 29, 2024 am 11:08 AM

本文介紹了六款受歡迎的 AI 工具,包括抖音豆包、文心一格、騰訊智影、百度飛槳 EasyDL、百度 AI Studio 和訊飛星火認知大模型。這些工具涵蓋不同的功能,如文字創作、圖像生成、影片編輯和 AI 模型開發。選擇合適的 AI 工具需要考慮功能需求、技術水平和成本預算等因素。這些工具為需要 AI 輔助的個人和企業提供了方便且有效率的解決方案。

百度又一國民產品接入DeepSeek,是想開了還是跟風? 百度又一國民產品接入DeepSeek,是想開了還是跟風? Mar 12, 2025 pm 01:48 PM

DeepSeek-R1賦能百度文庫與網盤:深度思考與行動的完美融合短短一個月內,DeepSeek-R1已迅速融入眾多平台。百度憑藉大膽的戰略佈局,將DeepSeek作為第三方模型夥伴,整合進自身生態系統,這標誌著其“大模型 搜索”生態戰略的重大進展。百度搜索和文心智能體平台率先接入DeepSeek及文心大模型的深度搜索功能,為用戶提供免費的AI搜索體驗。同時,“百度一下,你就知道”的經典slogan回歸,新版百度APP也整合了文心大模型和DeepSeek的能力,推出“AI搜索”、“全網信息提煉”

誰實際擁有Google? 誰實際擁有Google? Apr 02, 2025 pm 04:01 PM

Google由AlphabetInc.擁有,Alphabet由拉里·佩奇和謝爾蓋·布林控制:1)通過持有B類股票(每股10票投票權),創始人確保對公司的控制權;2)Alphabet的A類和C類股票分別在公開市場和員工持股計劃中流通,但不影響創始人的控制權。

ai工具有哪些 ai工具有哪些 Nov 29, 2024 am 11:11 AM

ai工具有:豆包、ChatGPT、Gemini、BlenderBot等等。

See all articles