如何在PHP中利用jQuery.autocomplete插件实现一个自动提示功能

  介绍

如何在PHP中利用jQuery。自动完成插件实现一个自动提示功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> XHTML

首先将jquery库和相关ui插件,以及css导入。

代码如下:


& lt;链接rel=皊tylesheet"href=https://www.yisu.com/zixun/" jquery.ui.autocomplete.css "/>
& lt;脚本类型=拔谋?javascript"src=https://www.yisu.com/zixun/" js/jquery.js ">
& lt;脚本类型=拔谋?javascript"src=https://www.yisu.com/zixun/" ui/jquery.ui.core.js ">
& lt;脚本类型=拔谋?javascript"src=https://www.yisu.com/zixun/" ui/jquery.ui.widget.js ">
& lt;脚本类型=拔谋?javascript"src=https://www.yisu.com/zixun/" ui/jquery.ui.position.js ">
& lt;脚本类型=拔谋?javascript"src=https://www.yisu.com/zixun/" ui/jquery.ui.autocomplete.js ">

jQuery ui插件可以在官网上下载:
接着在身体中写一个输入框:

代码如下:


& lt;输入类型=皌ext"id=発ey"name=発ey"/比;

<强> jQuery

代码如下:


$(函数(){
,,,(“# key"美元)。自动完成({
,,,,,,,来源:“search.php",
,,,,,,,最小长度:2
,,,});
});

一看就明白,调用自动完成插件,数据源来自search.php,当用户输入1个字符的时候就调用数据源.autocomplte插件提供了几个可配置的参数:
禁用:是否在页面加载后不可用,默认为false,这个没必要设置成这样,没有多大意义。
appendTo:输入时下拉的提示框追加元素,默认为“body"。
自动对焦:默认为假,当设置成真实时,下拉提示框第一个将会是被选中的状态。
延迟:加载数据时的延迟时间,默认为300,单位毫秒。
最小长度:输入多少个字符时就会出现下拉提示,默认为1。
位置:定义下拉提示框的位置。
来源:定义数据源,数据源必须是json形式的,本例是通过请求搜索。php获取的数据源。
自动完成还提供了许多事件和方法,详情请查看其官网:

<强> php

调用了自动完成插件后,还并没有提示效果,别着急,因为需要调用数据源。
首先我们需要一张表,并要往表中添加适量数据,表的结构如下:

CREATE  TABLE ‘艺术’,(,   ,“id”int (11), NOT  NULL  auto_increment,,   ,“标题”varchar (100), NOT 空,,   ,PRIMARY  KEY  (id),   ),引擎=MyISAM  DEFAULT  CHARSET=utf8 ;

,
请自行建表,并往表艺术中添加数据。

搜索。php实现了连接Mysql数据库,并根据前端用户的输入,查询并获取数据表中相匹配的内容,然后以JSON形式输出。

include_once (“connect.php");,//连接数据库,   ,   函数=美元q  $ _GET [“term"]);,//获取用户输入的内容,   查询美元=mysql_query (“select  *,得到art  where  title  like  & # 39; q % & # 39;美元,limit  0, 10“),,//查询数据库,并将结果集组成数组,   while (美元($ result中进行row=mysql_fetch_array查询)),{,   美元才能结果[],=,阵列(,   ,,,& # 39;id # 39;,=祝辞,美元行[& # 39;id # 39;),,   ,,,& # 39;标签# 39;,=祝辞,美元行[& # 39;标题# 39;],   ,,);   },   echo  json_encode()美元,//输出JSON数据

最后输出的JSON数据格式为:

代码如下:


[{“id":“3“,“title":“\ u4f7f \ u7528CSS \ u548cjQuery \ u5236 \ u4f5c \ u6f02 \ u4eae \ u7684 \ u4e0b
\ u62c9 \ u9009 \ u9879 \ u83dc \ u5355"},
{“id":“4“,“title":“\ u4f7f \ u7528jQuery \ u548cCSS \ u63a7 \ u5236 \ u9875 \ u9762 \ u6253 \ u5370
\ u533a \ u57df"}]

这时,再测试下输入,是不是看到你要的效果了呢?
最后,值得一提的是,自动完成插件在firefox上有一个输入错误,输入后并不能提示,需要向前空格再退格才有提示。网上有很多同学给出了解决方案,但是目前最新的自动完成插件代码貌视进行了重构,我的解决方法是,在133行中加入如下代码:

.bind (“input.autocomplete",函数(){,//才能修复FF不支持中文bug    self.search才能(self.item);,   });

看完上述内容,你们掌握如何在PHP中利用jQuery.autocomplete插件实现一个自动提示功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

如何在PHP中利用jQuery.autocomplete插件实现一个自动提示功能