jquery自动完成插件(autocomplete)应用之PHP版


Posted in Javascript onDecember 15, 2009

于工作中需要用到自动提示这个功能,呵呵,自己又是js小菜,于是百度了一下,找到一个用jquery与其插件autocomplete开发的.net版的自动完成功能,于是down下来了改成了php版的,并加了支持向上/向下选择文字等功能,放上来共享一下,纯体力活。。。 :)
1、下载jquery库,网址:http://jquery.com/ ;
2、下载jquery autocomplete插件或者直接使用我附件里提供的文件,自己下载下来的文件需要修改一些内容才能支持向上/向下选择文字、解决中文乱码,其中解决中文乱的问题网上有提到过,就是把文件中的encodeURI改成escape,还有把keydown修改成keyup即可,至于支持向上/向下选择文字请参看附件;
3、以下是调用代码:
auto.html内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<script type="text/javascript" src="include/javascript/jquery.js"></script> 
<script type="text/javascript" src="include/javascript/jquery.autocomplete.js"></script> 
<link rel="stylesheet" type="text/css" href="include/javascript/jquery.autocomplete.css" /> 
<title>自动完成测试</title> 
</head> 
<body> 
<input type="text" name="keyword" id="search" size="30" /> 
<script language="javascript"> 
$(document).ready(function() { 
$("#search").autocomplete( 
"getindex.php", 
{ 
delay:10, 
minChars:1, 
matchSubset:1, 
matchContains:1, 
cacheLength:10, 
onItemSelect:selectItem, 
onFindValue:findValue, 
formatItem:formatItem, 
autoFill:false 
} 
); 
}); 
function findValue(li) { 
if( li == null ) return alert("No match!"); 
if( !!li.extra ) var sValue = li.extra[0]; 
else var sValue = li.selectValue; 
} 
function selectItem(li) { findValue(li);} 
function formatItem(row) { return row[0];//return row[0] + " (id: " + row[1] + ")"//如果有其他参数调用row[1],对应输出格式Sparta|896 
} 
function lookupAjax(){ 
var oSuggest = $("#search")[0].autocompleter; 
oSuggest.findValue(); 
return false; 
} 
</script> 
</body> 
</html>

getindex.php
<?php 
header("ContentType:text/plain;charset:gb2312"); 
define('SCRIPTNAV', 'getindex'); 
require_once './include/common.inc.php'; 
$keyWord=iconv('utf-8', 'gb2312', js_unescape($q)); 
$query = $db->query("SELECT DISTINCT(shopname) FROM {$dbpre}shops WHERE shopname LIKE '%$keyWord%' GROUP BY shopname ORDER BY addtime DESC LIMIT 0,10"); 
if($query) 
{ 
while ($result = $db->fetch_array($query)) 
{ 
echo $result['shopname']."\n"; 
} 
} 
//转换js escape提交过来数据 
function js_unescape($str) 
{ 
$ret = ''; 
$len = strlen($str); 
for ($i = 0; $i < $len; $i++) 
{ 
if ($str[$i] == '%' && $str[$i+1] == 'u') 
{ 
$val = hexdec(substr($str, $i+2, 4)); 
if ($val < 0x7f) $ret .= chr($val); 
else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f)); 
else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f)); 
$i += 5; 
} 
else if ($str[$i] == '%') 
{ 
$ret .= urldecode(substr($str, $i, 3)); 
$i += 2; 
} 
else $ret .= $str[$i]; 
} 
return $ret; 
} 
?>

附件如下:
http://xiazai.3water.com/200912/yuanma/jquery_autocomplete_php.rar
Javascript 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 Javascript
浅谈JS之tagNaem和nodeName
Sep 13 Javascript
微信小程序实现日历效果
Dec 28 Javascript
详解VUE项目中安装和使用vant组件
Apr 28 Javascript
vue的列表交错过渡实现代码示例
May 05 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
Dec 17 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
jquery自定义组件实例详解
Dec 31 jQuery
Javascript attachEvent传递参数的办法
Dec 14 #Javascript
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 #Javascript
javascript document.execCommand() 常用解析
Dec 14 #Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 #Javascript
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 #Javascript
js 页面传参数时 参数值含特殊字符的问题
Dec 13 #Javascript
JQuery下关于$.Ready()的分析
Dec 13 #Javascript
You might like
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
javascript 年月日联动实现核心代码
2009/12/21 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python实现各种插值法(数值分析)
2019/07/30 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
python3 简单实现组合设计模式
2020/07/02 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
在校实习生求职信
2014/06/18 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
社区党员干部承诺书
2015/05/04 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript