PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
XHTML
首先将jquery库和相关ui插件,以及css导入。一共引用三个 jquery ,jquery_ui.js,jquery-ui.css 三个文件,不同版本小哥可能稍有差异
(最后注意ajax请求的返回值的格式)

jQuery ui 插件可以在官网上下载:
接着在body中写一个输入框:
jQuery
$("#key").autocomplete({
source: "search.php",
minLength: 2
});
});
一看就明白,调用autocomplete插件,数据源来自search.php,当用户输入1个字符的时候就调用数据源。autocomplte插件提供了几个可配置的参数:
disabled:是否在页面加载后不可用,默认为false,这个没必要设置成true,没有多大意义。
appendTo:输入时下拉的提示框追加元素,默认为"body"。
autoFocus:默认为false,当设置成true时,下拉提示框第一个将会是被选中的状态。
delay:加载数据时的延迟时间,默认为300,单位毫秒。
minLength:输入多少个字符时就会出现下拉提示,默认为1。
position:定义下拉提示框的位置。
source:定义数据源,数据源必须是json形式的,本例是通过请求search.php获取的数据源。
autocomplete还提供了许多事件和方法,详情请查看其官网:
PHP
调用了autocomplete插件后,还并没有提示效果,别着急,因为需要调用数据源。
首先我们需要一张表,并要往表中添加适量数据,表的结构如下:
| 1 2 3 4 5 | CREATETABLE`art` (  `id` int(11) NOTNULLauto_increment,  `title` varchar(100) NOTNULL,  PRIMARYKEY(`id`) ) ENGINE=MyISAM DEFAULTCHARSET=utf8 ; | 
请自行建表,并往表art中添加数据。
search.php实现了连接Mysql数据库,并根据前端用户的输入,查询并获取数据表中相匹配的内容,然后以JSON形式输出。
| 1 2 3 4 5 6 7 8 9 10 11 12 | include_once("connect.php"); //连接数据库  $q= strtolower($_GET["term"]); //获取用户输入的内容 $query=mysql_query("select * from art where title like '$q%' limit 0,10"); //查询数据库,并将结果集组成数组 while($row=mysql_fetch_array($query)) {   $result[] = array(     'id'=> $row['id'],     'label'=> $row['title']   ); } echojson_encode($result); //输出JSON数据  | 
最后输出的JSON数据格式为:
\u62c9\u9009\u9879\u83dc\u5355"},
{"id":"4","title":"\u4f7f\u7528jQuery\u548cCSS\u63a7\u5236\u9875\u9762\u6253\u5370
\u533a\u57df"}]
这时,再测试下输入,是不是看到你要的效果了呢?
最后,值得一提的是,autocomplete插件在firefox上有一个输入BUG,输入后并不能提示,需要向前空格再退格才有提示。网上有很多同学给出了解决方案,但是目前最新的autocomplete插件代码貌视进行了重构,我的解决方法是,在133行中加入如下代码:
| 1 2 3 4 | .bind("input.autocomplete",function(){   //修复FF不支持中文bug   self.search(self.item); }); | 
以上所述就是本文的全部内容了,希望大家能够喜欢。
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能的更多相关文章
- Jquery autocomplete 插件示例
		通过Jquery autocomplete 插件动态传递输入参数完成自动完成提示: <%@ page language="java" import="java.ut ... 
- jquery autocomplete插件
		jquery autocomplete插件 https://goodies.pixabay.com/jquery/auto-complete/demo.html autocomplete-table ... 
- Jquery autocomplete插件的使用
		简单用法: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ... 
- jquery autoComplete 插件
		github: https://github.com/Pixabay/jQuery-autoComplete/blob/master/demo.html 官网demo https://goodies. ... 
- 使用 jQuery.AutoComplete 让文本框自动完成
		直接贴代码了. @section headSection { <script type="text/javascript"> $(document).ready(fun ... 
- jQuery Validate插件实现表单强大的验证功能
		转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ... 
- jquery autocomplete 插件的使用
		Autocomplete 自动完成 功能:输入框在输入关键字后,根据输入的内容给出相关的下拉框供用户选择,自动完成输入内容. 插件:使用jqueryUI的自动完成小部件,文档地址:https://jq ... 
- Jquery autocomplete 插件使用
		轻松实现类似百度输入框联想功能: autocomplete 是一个很厉害的插件,该插件基于jquery,在jquery官网能下载到最新版本. 首先,jQuery UI 是基于 jQuery 的,所以, ... 
- jquery mutilselect 插件添加中英文自动补全
		jquery mutilselect默认只能根据设置的option来进行自动提示 $.each(availableTags, function(key, value) { $('#channels') ... 
随机推荐
- OOP面向对象     三大特征 继承封装多态
			OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ... 
- Zepto.js实现fadeIn,fadeOut功能
			Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. Zepto的设计目的是提供 jQuery 的 ... 
- 【hdu 6444】Neko's loop
			[链接] 我是链接,点我呀:) [题意] 给你一个序列. 你可以选择起点i. 然后每次往右跳k次. 得到下一个值a[i+k];. 问你跳m次能得到的最大值ma是多少. 如果>=s输出0 否则输出 ... 
- 洛谷 U249 匹配
			U249 匹配 题目描述 输入整数s和两个整数集合A和B,从这A和B中各取一个数,如果它们的和等于s,称为“匹配”.编程统计匹配的总次数 输入输出格式 输入格式: 第一行为三个整数s(0<s≤1 ... 
- java多线程具体总结
			一.Thread.start()与Thread.run()的差别 通过调用Thread类的start()方法来启动一个线程.这时此线程是处于就绪状态,并没有运行.然后通过此Thread类调用方法run ... 
- disruptor实操作手冊(二)
			多消费者场景 上一篇文章介绍了怎样构建一个简单的disruptorproject之后.应该有相当一部分客官骂娘了,确实这种范例在其他地方多的是. 从这篇開始,介绍一些不一样的东西. 一,多个消费者: ... 
- hdu 4997 Biconnected
			这题主要是计算连通子图的个数(c)和不连通子图的个数(dc)还有连通度为1的子图的个数(c1)和连通度为2以上的子图的个数(c2)之间的转化关系 主要思路大概例如以下: 用状态压缩的方法算出状态为x的 ... 
- firewall 允许app访问网络
			https://www.wikihow.com/Block-a-Program-with-Windows-Firewall 打开windows firewall change settings 然后就 ... 
- spark Bisecting k-means(二分K均值算法)
			Bisecting k-means(二分K均值算法) 二分k均值(bisecting k-means)是一种层次聚类方法,算法的主要思想是:首先将所有点作为一个簇,然后将该簇一分为二.之后选择能最大程 ... 
- HD-ACM算法专攻系列(19)——Leftmost Digit
			问题描述: AC源码: 解题关键是,数据很大,不能强算,需要使用技巧,这里使用科学计算法,令N^N=a*10^n ,取对数后变为 N*log10(N)=log10(a)+n,令x = log10(a) ... 
