Ajax技术实践之完成Ajax自动完成功能

ajax

   近日学习了一下AJAX,照做了几个例子,感觉比较新奇。

   第一个就是自动完成的功能即Autocomplete,具体的例子可以在这里看: http://www.b2c-battery.co.uk

   在Search框内输入一个产品型号,就可以看见效果了。

   这里用到了一个开源的代码: AutoAssist ,有兴趣的可以看一下。

   以下为代码片断:

index.htm
<script type="text/javascript" src="javascripts/prototype.js"></script>
<script type="text/javascript" src="javascripts/autoassist.js"></script>
<link rel="stylesheet" type="text/css" href="styles/autoassist.css"/>
<div>
<input type="text" name="keyword" id="keyword"/>
<script type="text/javascript">
Event.observe(window, "load", function() {
var aa = new AutoAssist("keyword", function() {
return "forCSV.php?q=" + this.txtBox.value;
});
});
</script>
</div>

    不知道为什么不能用keywords做文本框的名字,我试了很久,后来还是用keyword,搞得还要修改原代码。

forCSV.php
<?php
$keyword = $_GET['q'];
$count = 0;
$handle = fopen("products.csv", "r");
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
if (preg_match("/$keyword/i", $data[0])) {
if ($count++ > 10) { break; }
?>
<div onSelect="this.txtBox.value='<?php echo $data[0]; ?>';">
<?php echo $data[0]; ?>
</div>
<?php
}
}
fclose($handle);
if ($count == 0) {
?>
: (, nothing found.
<?php
}
?>

   原来的例子中的CSV文件是根据\t来分隔的,我们也可以用空格或其它的来分隔,这取决于你的数据结构。

   当然你也可以不读文件,改从数据库里读资料,就不再废话了。

   效果图如下:

时间: 2024-10-27 17:17:29

Ajax技术实践之完成Ajax自动完成功能的相关文章

基于Ajax技术实现考试倒计时并自动提交试卷_AJAX相关

1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访问准备考试页面index.jsp,在该页面中,单击"开始考试"按钮,将打开新窗口显示开始考试的页面,如图10.1所示,页面会自动计时,当考试时间结束时,将自动提价试卷. 2.技术要点 主要是利用Ajax异步提交技术和Servlet技术实现的.显示在考试页面中的计时时间是在Servlet中设置的,需要通过Ajax的异步提交不断的请求Se

AJAX技术介绍(什么是AJAX?)

ajax AJAX开发者的最新工具和技术 基于XML的异步JavaScript,简称AJAX,是当前Web创新(称为Web2.0)中的一个王冠.感谢组成AJAX的各种技术,Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃.这个术语源自描述从基于网页的Web应用到基于数据的应用的转换.在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样. 虽然大部分开发人员在过

使用Ajax技术通过XMLHttpRequest对象完成首页登录功能_AJAX相关

最近使用Ajax技术通过XMLHttpRequest对象完成一个首页的登录功能! 代码如下: <script type="text/javascript"> //创建XMLHttpRequest对象 function createXMLHttpRequest(){ if(window.XMLHttpRequest){ return xmlhttprequest=new XMLHttpRequest(); }else{ return xmlhttprequest=new Ac

使用Ajax技术通过XMLHttpRequest对象完成首页登录功能

最近使用Ajax技术通过XMLHttpRequest对象完成一个首页的登录功能! 代码如下: <script type="text/javascript"> //创建XMLHttpRequest对象 function createXMLHttpRequest(){ if(window.XMLHttpRequest){ return xmlhttprequest=new XMLHttpRequest(); }else{ return xmlhttprequest=new Ac

使用AJAX技术实现网页无闪自动局部刷新

我们在网页制作的过程中经常会遇到及时刷新数据的问题,如果使用 的方法,会造成整个屏幕不断闪烁刷新的效果,这会降低用户的操作满意度. 所以我们需要一种可以实现无闪自动刷新数据的方法来解决以上问题. 实例解决问题: 希望实现用户在进入系统以后(整个session的时效之内),如果收到新邮件则发出声音提示. 实现思路: 1.首页部分:< body onload="init('');"> // load时调用init(user); 2.js部分:用XMLHTTP实现页面局部刷新,调

基于AJAX技术实现Struts校验框架

ajax 提要 实时的数据校验是AJAX技术的重要优点之一,Struts校验框架通过加入这种技术进一步丰富了其MVC,从而使得Web应用程序的开发效果更接近于桌面应用程序. 一. 引言 校验框架的根本目的是实现域校验.在Web应用程序中有许多方法可以实现域校验,总体上可以分为两类:服务器端和客户端.其中,Struts校验框架是适合于基于Java的Web应用程序环境最好的框架之一.它可以使用服务器端校验来配置应用程序并且使用在校验过程(在请求处理期间激活)中生成的错误消息:而且它也可以通过在请求页

Ajax基础教程(4)- 实现基本Ajax技术 4.1 完成验证

我们已经介绍了Ajax技术,也知道了如何使用XMLHttpRequest对象,现在要把它们结合起来,该怎么做呢?哪些情况下需要应用Ajax技术?当然,Ajax的潜力几乎是无穷尽的,关于Ajax的使用,灵感可能源源不断.本章将展示一些例子,在这些情况下,使用Ajax技术可以让应用突飞猛进.有些情况是一目了然的,有些则不是.不过无论怎样,对Ajax应用积累的经验越多,你就越会找到自己的方法来改善应用.在这些例子中,大多数都使用Java servlet作为服务器端组件,其实每个例子也都能很容易地使用.

Ajax基础教程(4)- 实现基本Ajax技术 4.4 创建自动刷新页面

股票行情.天气数据.标题新闻--这些都是经常改变的数据,但不值得为这些数据的修改手工地完全刷新页面.尽管CNN.com之类的网站确实会定期重新加载,但是,如果只是为了改变一两个标题新闻和几个图就重绘整个页面,这可能很让人扫兴.当然,如果刷新整个页面,可能很难发现到底哪些是新内容! 如果使用Ajax,用户就不用反复点击refresh(刷新)按钮.技术新闻网站Digg (http://digg.com/spy)就使用了这种技术.Digg采用自动刷新方法不断更新其页面,并使用了很有帮助的褪色技术,以可

Ajax技术:构建动态的Java应用程序

ajax|程序|动态 [导读]在本文中,作者Philip McCarthy介绍了通过后台通道的方法来创建动态Web应用的经验. Ajax(Asynchronous JavaScript and XML)是一个结合了Java技术.XML.以及JavaScript的编程技术,可以让你构建基于Java技术的Web应用,并打破了使用页面重载的惯例. Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法.这样,Web页面不用打断交互流程进行重新加裁,就可以