All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi 判断文件结尾的函数eof函数和eoin函数
今年最新PHP实用类精华总结_[PHP教程]
保护SQL,Server的十个步骤_[SQL,Server教程]
DataGrid单击一行服务器事件_[Asp.Net教程]
在ASP.NET应用程序中上传文件_[Asp.Net教程]
LINQ体验(2)——C#,3.0新语言特性和改进(上篇)_[Asp.Net教程]
利用.NET绘图技术制作水晶按钮控件_.net资料_编程技术
php程序获得访问者ip的代码_[PHP教程]
技巧:用PHP程序计算时间差的几种方法_[PHP教程]
ASP.NET无限级分类的非递归实现(存储过程版)_[Asp.Net教程]
Reading number is top 10 pictures
Summer is most suitable for young people to travel in China8
The beginning and end
小学生作文又现神作,你不得不佩服
More attractive than sora aoi3
29 the belle stars after bath figure4
壮丽的云彩1
NeedWallpaper7
In the world the most mysterious 21 place landscape4
男人巳快沦落成动物了
做运动的校花1
Download software ranking
Ashlynn Video1
The king of fighters 97(Mobile phone games-apk)
Dance with duck(male prostitution)
C#COM编程指南
在线棋牌游戏3.05版
Macromedia Dreamweaver 8
Unix video tutorial12
Wild things 2
都市狐狸姑娘传
C#程序员参考手册
归海一刀 published in(发表于) 2014/3/16 2:53:40 Edit(编辑)
使用 jQuery(Ajax)MySQL实现自动完成功能_[AJAX教程]

使用 jQuery(Ajax)MySQL实现自动完成功能_[AJAX教程]

使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能_[AJAX教程]























使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能




一如往常,demo和源码的zip包在文章最后,慢慢欣赏吧!




我觉得我有必要写这个教程,因为曾经见到的大部分关于自动完成的应用程序都只是给你一个程序源码包,然后告诉你怎么使用,而不是告诉你它是如何工作的以及为什么这样做。而知道这些可以让你对这个插件可以进一步的按自己的需求定制(关于这一点我在我的blog里写过不少关于其他应用的文章)。







好,我们现在开始。




JavaScript代码
















JS的解释:




好,从上面的代码看到,我们需要连接到一个叫做rpc.php的文件,这个文件处理所有的操作。




lookup函数使用从文本输入框中得到的单词然后使用jQuery中Ajax的方法POST把它传给rpc.php。




如果输入字符 ‘inputString’是‘0’(Zero,译注:在这里是指在搜索框中没输入任何内容),建议框就被隐藏,这也很人性化,你想,如果在搜索框中没有输入任何东西,你也不期望会出现个建议提示框。




如果输入框中有内容,我们就得到了这个 ‘inputString’并传递给rpc.php页面,然后jQuery 的.post()函数被使用,如下:




.post(url, [data], [callback])




‘callback’部分可以关联一个函数,这个比较有意思,只有在数据(data)被加载成功的时候才会执行(译注:此处为意译,没看懂原文:<).




如果返回的数据(data)不为空(也就是说,有东西要显示),那就显示搜索提示框并且使用返回的数据(data)来代替其中的html代码。




就这么简单!




PHP后台程序(rpc.php):




如你所知,我的php后台程序都叫做rpc.php(RPC指远程过程调用),而没用它实际执行的功能来命名,但是也还不错了。







// PHP5 Implementation - uses MySQLi.
db = new mysqli(‘localhost’, ‘root’ ,”, ‘autoComplete’);
if(!db) {
// Show error if we cannot connect.
echo ‘ERROR: Could not connect to the database.’;
} else {
// Is there a posted query string?
if(isset(_POST[‘queryString’])) {
queryString = _POST[‘queryString’];
// Is the string length greater than 0?
if(strlen(queryString) >0) {
// Run the query: We use LIKE ‘queryString%’
// The percentage sign is a wild-card, in my example of countries it works like this…
// queryString = ‘Uni’;
// Returned data = ‘United States, United Kindom’;
query = db->query("SELECT value FROM countries WHERE value LIKE ‘queryString%’ LIMIT 10");
if(query) {
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
while (result = query ->fetch_object()) {
// Format the results, im using

  • for the list, you can change it.
    // The onClick function fills the textbox with the result.
    echo ‘
  • onclick="fill(’‘.result->value.’‘);">’.result->value.‘
  • ’;
    }
    } else {
    echo ‘ERROR: There was a problem with the query.’;
    }
    } else {
    // Dont do anything.
    } // There is a queryString.
    } else {
    echo ‘There should be no direct access to this script!’;
    }
    }




    ?>







    PHP代码解释




    鉴于代码中我已经加了很多注释,在这里我就不再说的很详细了。




    一般情况下,需要接收这个 ‘QueryString’ 然后在其最后使用通配符产生一个查询语句。




    这意味着在这种情况下,每次敲进去一个字符都需要产生一个查询语句,如果一直都这样做的话,恐怕MYSQL会受不了。但是为了尽量的简化这个过程,这种做法对一个规模较小的应用应该没什么问题。




    这段php代码你需要在自己的系统中稍作修改,比如你需要更新‘query’到你自己的数据库,需要看在哪里放你数据库表的列名等等。




    CSS样式




    我使用的是CSS3,天哪,它真的很好用,虽然在Firefox 或者Safari浏览器上会有功能限制。















    CSS代码都很标准,没什么需要特别指出的。




    主文件HTML















    Type your county (for the demo):
    onkeyup="lookup(this.value);" type="text" />





































    这是主文件的部分html代码,你需要添加的就是一个输入框,并且把 ‘onkeyup’ 函数设置为lookup(this.value)。另外,我建议你不要修改它的ID,如果你不想修改上面的Javascript代码的话。




    截图




    我想你应该会想要看看最后的效果是什么样子,OK。







    还有,







    最后就是有用的链接了,我想你应该期待很久了。




    演示Auto Complete Demo
    源文件AutoComplete Source ZIP




    来源:蓝色理想









































    添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


    Disclaimer Privacy Policy About us Site Map

    If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
    Copyright ©2011-
    uuhomepage.com, Inc. All rights reserved.