PHP实现类似百度搜索自动完成(代码简单)

一、效果图:

 

 

二、HTML代码

<html lang="en">
<head><meta charset="utf-8"><title>jQuery UI 自动完成(Autocomplete) - 默认功能</title><link rel="stylesheet" href="/public/AutoCom/jquery-ui.css"><script src="/public/AutoCom/jquery-1.91.js"></script><script src="/public/AutoCom/jquery-ui.js"></script><script>$(function() {$( "#tags" ).autocomplete({// source: availableTagssource: "at.php"});});</script>
</head>
<body><div class="ui-widget"><label for="tags">标签:</label><input id="tags" name="tags" >
</div></body>
</html>

 

 

三、PHP代码

<?php
function test($keyword) 
{//连接数据库$dsn = "mysql:dbname=test;host=localhost;";$db = new PDO($dsn, 'root', 'root');//查询数据$result = $db->prepare("select title from article where title like :title");$result->execute(array('title' => "%" . $keyword . "%"));$data = $result->fetchall(PDO::FETCH_ASSOC);//将二维数组转化为一维数组(自动补全插件要求的是一个一维数组)foreach ($data as $k => $v) {$datas[] = $v['title'];}return $datas;
}//获取输入框的内容
//注:jquery-ui的自动补全ajax 当我们输入一个c时,Autocomplete实际发送的请求路径为at.php?term=c
$keyword = $_GET['term'];//根据用户输入值查询相关数据
$data = test($keyword);
//输出json字符串
echo json_encode($data); //输出查询的结果(json格式输出)?>

 

备注:HTML部分引入的css,js源代码:

<!-- 引入jQuery UI的css文件 -->
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-darkness/jquery-ui.css" />
<!-- 引入jQuery的js文件 -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js" ></script>
<!-- 引入jQuery UI的js文件 -->
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.js" ></script>

文章参考:http://www.365mini.com/page/jquery-ui-autocomplete.htm

更多功能可参考: http://www.runoob.com/jqueryui/example-autocomplete.html

如果js和css源代码地址找不到,到这里下载

 

总结:以上是结合mysql 和 jquery-ui实现的自动提示,实际上如果数据库数据量较大的情况,整体对数据库开销也比较大。

这样,也可以尝试使用全文检索工具 xunsearch 或 sphinx 来实现。好处是减少了mysql数据库的查询压力,提高了检索速度。

xunSearch的使用:https://blog.csdn.net/m_nanle_xiaobudiu/article/details/81663636

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql读写分离php脚本

<?php/*php如何连接mysql*/ /*$link mysql_connect(‘localhost‘, ‘root‘, ‘‘);if (!$link) {die(‘Could not connect: ‘ . mysql_error());}echo ‘Connected successfully‘;mysql_close($link);*/ /*php如何选择数据库*//*$link mysql_connect(‘localhost‘, …

CentOS 搭建Postfix+Dovecot简单邮件系统

2019独角兽企业重金招聘Python工程师标准>>> 服务器信息 系统&#xff1a;CentOS 6.5 minimal版本 主机&#xff1a;虚拟机 虚拟机IP&#xff1a;192.168.128.128/24 宿主IP:10.1.79.24/24 安装postfix 注意&#xff1a;CentOS 7实际上已经用postfixSasl2代替sendma…

Js获取当前页面URL各种参数

JS获取当前页面URL各种参数 一&#xff1a;Location Location 对象包含有关当前 URL 的信息。 Location 对象是 Window 对象的一个部分&#xff0c;可通过 window.location 属性来访问。 hash设置或返回从井号 (#) 开始的 URL&#xff08;锚&#xff09;。host设置或返回主机名…

php面试题2018

一 、PHP基础部分 1、PHP语言的一大优势是跨平台&#xff0c;什么是跨平台&#xff1f; PHP的运行环境最优搭配为ApacheMySQLPHP&#xff0c;此运行环境可以在不同操作系统&#xff08;例如windows、Linux等&#xff09;上配置&#xff0c;不受操作系统的限制&#xff0c;所以…

学生党的专属定制福利,你想要的这里全都有!

同学们&#xff1a;您好&#xff01;很⾼兴认识⼤家&#xff01;我是微软的 Regional Cloud Advocate Kinfey Lo&#xff0c;感谢您在课余时间打开这封信。踏⼊⾦秋&#xff0c;技术峰会进⼊了旺季&#xff0c;有⾯向商业的&#xff0c;有⾯向开发者的&#xff0c;有⾯向技术社…

Quartus prime16.0 与modelsim ae 联调

前言 quartus和modelsim联调对仿真还是很方便的&#xff0c;当然最好是quartus干综合到烧录的活&#xff0c;modelsim单独仿真。而且ae版的性能比se版差。 流程&#xff1a; 1.配置modelsim ae路径&#xff1a; 我这里是这个路径&#xff0c;根据你自己安装的地方配置路径。 2.…

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)

去年八月时要做一个OA系统为了后台界面而烦恼&#xff0c;后来写了一篇博客&#xff08;《后台管理UI的选择》&#xff09;介绍了选择过程与常用后台UI&#xff0c;令我想不到的时竟然有许多开发者与我一样都为这个事情而花费不少时间&#xff0c;最后界面效果还是不佳&#xf…

分析拼多多的崛起【产品思维】

最近朋友圈讨论拼多多上市的新闻大火&#xff0c;各有各的看法&#xff0c;很有意思&#xff0c;突然想起前段时间得到上的《梁宁-产品思维30讲》&#xff0c;所以想从数据和产品角度分析分析拼多多的崛起。 一&#xff1a;拼多多的迅速崛起 我们先看看拼多多这几年的成长历程&…

62、滑动窗口的最大值

一、题目 给定一个数组和滑动窗口的大小&#xff0c;找出所有滑动窗口里数值的最大值。例如&#xff0c;如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3&#xff0c;那么一共存在6个滑动窗口&#xff0c;他们的最大值分别为{4,4,6,6,6,5}&#xff1b; 针对数组{2,3,4,2,6,2,5…

KestrelServer详解[2]: 网络连接是如何创建的?

《KestrelServer详解[1]&#xff1a;注册监听终结点&#xff08;Endpoint&#xff09;》已经详细讲述了如何使用KestrelServer&#xff0c;现在我们来简单聊聊这种服务器的总体设计和实现原理。当KestrelServer启动的时候&#xff0c;注册的每个终结点将转换成对应的“连接监听…

PHP操作文件和目录的相关函数

//判断文件类型 filetype(a.php);//打开或创建文件 fopen(a.php,w);//读取文件 fgets(a.php);//按行读取 fread(a.php,1049);//按块读取 file_get_contents(a.php);//读取文件//复制文件 copy(a.php,./b.php);//将a.php复制到b.php//删除文件 unlink(b.php);//移动文件 rename(…

linux LyX中文编辑环境安装配置指南-TeX可视化工具

TeX可以说是国际上排版的标准&#xff0c;尤其是论文、书籍之类&#xff0c;对公式的表现比MS办公系列强的太多&#xff0c;格式异常优美&#xff0c;但是由于其比较复杂的命令&#xff0c;非可视化编辑&#xff0c;所以使得入门门槛较高&#xff0c;所以出现了LaTeX这样的命令…

pandas DataFrame 数据处理常用操作

Xgboost调参&#xff1a; https://wuhuhu800.github.io/2018/02/28/XGboost_param_share/ https://blog.csdn.net/hx2017/article/details/78064362 pandas DataFrame中的空值处理&#xff1a; https://blog.csdn.net/yuanxiang01/article/details/78738812 pandas的DataFrame、…

redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...

解决spring-data-redis操作redis集群报“Jedis does not support password protected Redis Cluster configurations”的异常 原因&#xff1a;使用spring-data-redis操作redis集群时由于redis集群设置了密码。 解决方案&#xff1a;升级spring-data-redis版本即可解决&#xf…

支付宝支付开发流程

支付宝开发流程1、首先我们先谈谈第三方支付所谓第三方支付就是和一些各大银行签约&#xff0c;并具备一定实力和信誉保障的第三方独立机构提供的交易平台目前市面上常见的有支付宝&#xff0c;财付通&#xff0c;网银&#xff0c;易宝支付等&#xff0c;网站需要实现第三方支付…

MQ消息队列之MSMQ

主要参考文章&#xff1a; 消息队列&#xff08;Message Queue&#xff09;简介及其使用 转载于:https://www.cnblogs.com/mailaidedt/p/6599130.html

css选择器总结

一.选择器 1. css1选择器 2.css2选择器 3.css3选择器 4.:nth-of-type(n)和:nth-child(n)区别 (1).在不指定类型时&#xff0c;nth-child(n)选中的是父元素下的第N个子元素。nth-of-type(n)选中的是父元素下的不同类型标签的第N个。(2).在指定具体元素时,ele:nth-child(n)要求不…

Hypercrx:开源项目不只有Star

01战队简介大家好&#xff0c;我们是Hypercrx战队&#xff0c;非常荣幸获得了首届Microsoft Edge浏览器开拓者大赛的一等奖&#xff01;我是队长唐烨男&#xff08;中&#xff09;&#xff0c;位于我左侧的是宁志成&#xff0c;右侧的是林以任&#xff0c;我们都来自华东师范大…

《Python编程快速上手 让繁琐工作自动化》pdf

<div id"article_content" class"article_content tracking-ad" data-mod"popu_307" data-dsm"post"> <p><br></p><p>下载地址&#xff1a;<a target"_blank" href"https://page74.c…

PHP上传图片到数据库,并进行显示

1、创建数据表 CREATE TABLE ccs_image (id int(4) unsigned NOT NULL auto_increment,description varchar(250) default NULL,bin_data longblob,filename varchar(50) default NULL,filesize varchar(50) default NULL,filetype varchar(50) default NULL,PRIMARY KEY (id)…