`
zpl3001
  • 浏览: 93402 次
  • 性别: Icon_minigender_1
  • 来自: baga
社区版块
存档分类
最新评论

一个模仿Google Suggest的例子

阅读更多
先来看看效果吧

把两个文件直接copy过去,再自己为数据库添加数据,就可以运行。
/**
 * @author J's Fantasy
 */
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//ZH-CN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<style type="text/css">
           body {
	          font:11px arial;
           }
           .suggest_link{  
              background-color:#FFFFCC;
	          padding:2px 6px 2px 6px;
           }
           .suggest_link_over{
	          cursor:default;
	          color:white;
	          background-color:#3366CC;
	          padding:2px 6px 2px 6px;
           }
           #suggest{
	          position:absolute;	          
	          text-align:left;
	          width:153px;
	          border:1px solid #000000;
           }
        </style>
		<script type="text/javascript">
		   
function getXmlHttpRequest(){
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else if(window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHttp");
	}else{
		alert("The browser does not support XmlHttpRequest object");
		return;
	}
}

var xmlHttp=getXmlHttpRequest();

function search(){
	var str=document.getElementById("txt").value;
	//hide search
	if(str==""){
		document.getElementById('suggest').style.display='none';
		return;
	}else{
		//display the suggest
		document.getElementById('suggest').style.display='';
	}
	
	//release the pressure for server because of input in field at a high speed
	if(xmlHttp.readyState==4||xmlHttp.readyState==0){
		var url="g_suggest.jsp?para="+str;
		xmlHttp.open("GET",url,true);
	    xmlHttp.onreadystatechange=callback;
	    xmlHttp.send(null);
	}
}

function callback(){
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){	
			var str=xmlHttp.responseText;
			var str1=str.split("\n");
			var result="";
			for(i=0;i<str1.length;i++){
			   result+='<div onmouseover="javascript:suggestOver(this);"';
			   result+='onmouseout="javascript:suggestOut(this);"';
			   result+='onclick="javascript:setSearch(this.innerHTML);"';
			   result+='class="suggest_link">'+str1[i]+'</div>';
			}
			document.getElementById("suggest").innerHTML=result;
		}
		else{
			alert("problem retrieving data:"+xmlHttp.statusText);
		}
	}
}

//mouse over function
function suggestOver(div_value){
	div_value.className='suggest_link_over';
}
//mouse out function
function suggestOut(div_value){
	div_value.className='suggest_link';
}
//click function
function setSearch(value){
	document.getElementById('txt').value=value;
	document.getElementById('suggest').innerHTML='';
	document.getElementById('suggest').style.display='none';
}

OnDocumentClick=function(event){
	if(!event){
		event=window.event;//ie
	}
	var e=event.target;//for firefox
	if(!e){
		e=event.srcElement;//for ie
	}
	while(e){
		//only if event source is on search_suggest or the search box
		//the popup div will not be hidden
		if(e==document.getElementById('suggest')||e==document.getElementById('txt')){
			return;
		}
		e=e.parentNode;
	}
	document.getElementById('suggest').style.display="none";
}

//for ie
try{
	document.onclick=OnDocumentClick;
}catch(e){
}
//for firfox(core Gecko)
try{
	document.addEventListener('click',OnDocumentClick,true);
}catch(e){
}
		   
		</script>
	<head>
	<body>
	    <center><b><h3>Google Suggest</h3><b></center><hr>
		<form id="gsuggest" action="http://www.google.com/search">
			<input id="txt" type="text" onkeyup="search()" onfocus=""/>
			<input id="go" type="submit" value="Google" alt="search"/><br>
			<div id="suggest" style="display:none"></div>
		</form>
	</body>	
</html>

<%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8" import="java.sql.*"%>
<%
   out.clear();
   //keep the user's browser from caching the response
   response.addHeader("Expires","Mon,26 Jul 1997 07:00:00 GMT");
   response.addHeader("Last-Modified",new java.util.Date().toGMTString());
   response.addHeader("Cache-Control","no-cache,must-revalidate");
   response.addHeader("Pragma","no-cache");
   try{
      Class.forName("com.mysql.jdbc.Driver");
      Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","19850403");
      String str=request.getParameter("para");
      out.print(str+"---\n");
      if(str==null||str.equals("")){
         return;
      }
      String sql="select title from suggest where lcase(title) like lcase('"+str+"%') order by title";
      Statement stmt=con.createStatement();
      ResultSet rs=stmt.executeQuery(sql);
      while(rs.next()){
         out.print(rs.getString(1)+"\n");
      }
      rs.close();
      stmt.close();
      con.close();
   }catch(Exception e){
      e.printStackTrace();
   }
   out.flush();
   //out.close();
%>
分享到:
评论
5 楼 czjtjlh 2009-10-18  
不能输入中文,请问如何解决呢??
4 楼 czjtjlh 2009-10-18  
楼主的能够 根据拼音查询码
3 楼 yinje2005 2009-02-12  
能实现将输入的拼音转成汉字的搜索啊!能吗?
2 楼 Jummy 2008-10-10  
学习了。。 加油
1 楼 gky23 2008-09-24  
           

相关推荐

    googleSuggest例子

    这个例子可能涉及到使用JSP(JavaServer Pages)和数据库技术来实现一个类似于Google搜索框的建议功能。`SuggestFrameWork`可能是自定义的一个框架或者库,专门用于处理用户输入时的实时建议。 JSP是Java的一种动态...

    ajax-类似google suggest 的一个简单例子

    **标题解析:** "ajax-类似google suggest 的一个简单例子" 这个标题指出我们将讨论一个使用Ajax技术实现的功能,该功能类似于Google搜索中的自动建议(Google Suggest)。Google Suggest是Google搜索引擎的一个特性...

    jquery练习的例子,仿真google suggest

    jquery练习的例子,仿真google suggestjquery练习的例子,仿真google suggestjquery练习的例子,仿真google suggestjquery练习的例子,仿真google suggestjquery练习的例子,仿真google suggestjquery练习的例子,...

    飞飞模仿google(suggest)下拉提示框v1.6.rar

    【标题】"飞飞模仿google(suggest)下拉提示框v1.6.rar"是一个模拟谷歌搜索下拉提示功能的程序。这个程序旨在为用户提供类似于谷歌搜索引擎的自动填充建议体验,帮助用户更快地找到他们想要搜索的内容。谷歌的下拉...

    google suggest 的实现

    Lucene 是一个开源的全文检索引擎工具包,它提供了高度可定制化的搜索功能,是实现 Google Suggest 后端逻辑的关键组件之一。 1. **索引建立**: - 首先需要根据文档内容建立索引。 - 可以选择使用数据库(如 ...

    google suggest 实现 ajax应用

    本主题主要聚焦于如何使用ASP.NET框架实现一个类似于Google Suggest的功能,即在用户输入文本时动态提供搜索建议。 【Google Suggest 简介】 Google Suggest是Google搜索引擎的一项功能,它在用户输入关键词时即时...

    一个适合新手的google suggest效果

    刚学ajax没多久,自己写了一个类似google suggest的效果,总算是实现了。对于刚学ajax的新手还可以看看,老手就没必要了。希望能够与大家多多交流,也希望大家提出批评和建议。 使用方法:解压后防在一个文件夹下...

    ASP模仿google suggest风格实现下拉菜单效果

    在本文中,我们将探讨如何使用ASP来模仿Google Suggest风格的下拉菜单效果。Google Suggest是一种自动补全功能,当用户在搜索框中输入文本时,它会提供与输入内容匹配的相关建议。这种功能提高了用户体验,减少了...

    ajax仿google suggest 数据库版

    2. **Ajax请求**:发送一个HTTP GET或POST请求到服务器,携带当前的用户输入值。请求可以携带额外参数,如搜索历史、地理位置等,以便提供更精准的建议。 3. **后端处理**:Java服务器接收到请求后,解析参数,然后...

    google suggest(支持中文)

    jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等功能,使得网页开发更加便捷。 在实现谷歌建议支持中文的过程中,关键知识点包括: 1. **jQuery库的使用**:jQuery提供...

    googlemaps googlesuggest 在asp.net 2.0中的应用

    Google Maps API是一个强大的工具,允许开发者将地图功能集成到自己的网站中,而Google Suggest API则提供了自动补全搜索建议的功能,提升用户输入体验。 【Google Maps API】是Google提供的一个JavaScript库,用于...

    仿google+suggest 自动完成程序

    【标题】"仿google suggest 自动完成程序"是一款基于AJAX、Access数据库和ASP.NET技术构建的应用,旨在模仿谷歌搜索引擎的自动建议功能。这个程序的主要目的是为那些正在学习AJAX技术的开发者提供一个实践和参考的...

    ajax自动完成 搜索提示(类似google) suggest

    使用空格匹配,一个空格字符相当于1个或多个字符(串),可以自己写简单的正则,加入属性,默认的spaceMatchRg为"\.\{1,}" 无论输入字符串在dataSource的何处,始终匹配 当数据量较大时,自动截取前部分的数据,...

    仿GoogleSuggest自动补全的功能

    本教程将详细讲解如何实现一个仿GoogleSuggest的自动补全功能,旨在提供一个绝对实用的解决方案。 首先,理解GoogleSuggest的工作原理至关重要。它基于用户在搜索框中输入的字符,实时从服务器端获取并展示可能的...

    仿Google Suggest提示效果

    【标题】"仿Google Suggest提示效果"是一个关于在网页中实现类似Google搜索框自动提示功能的技术分享。这种功能在现代网页应用中非常常见,它能够提升用户体验,帮助用户更快地找到他们想要输入的关键词。 【描述】...

    Kissy Suggest 自动提示例子

    Kissy Suggest 是 Kissy 项目的一个组件,Kissy 是一个轻量级的前端开发框架,强调模块化和高性能。Suggest 组件的核心在于提供快速、智能的输入提示服务,通过分析用户输入的字符,实时显示与之相关的建议列表,...

    vs2010仿google suggest功能案例

    利用Visual Studio 2010和SQLserver2008基于net framework 4开发的类似google suggest自动完成功能代码。 可以使用上下键进行选择回车键选定,也可以使用鼠标点击选定。 默认是查询的系统数据库的一张表,使用时请...

    ExtJs Google Suggest 动态查询效果

    在本示例中,"ExtJs Google Suggest 动态查询效果" 是一个利用ExtJs实现的功能,它模仿了谷歌搜索框的自动建议功能。当你在搜索框中输入文字时,下拉列表会实时更新,显示与输入内容匹配的建议项。 首先,我们要...

    类似google suggest

    在IT领域,Google Suggest是谷歌搜索引擎提供的一项功能,它根据用户在搜索框中输入的关键词实时显示相关的搜索建议。这个功能极大地提高了搜索效率,优化了用户体验。这里提到的“类似Google Suggest的Ajax”是指...

    飞飞模仿google(suggest)下拉提示框sggestV1.5

    6.可以一个页面多次使用 7.模拟下拉框不会被select遮挡 8.调用更方便(内核已改为jq插件) 9.皮肤修改方便 ,外置的css样式文件,带有注释说明,任意修改 文件使用说明: 在需要使用的页面首先要引用2个js文件 ...

Global site tag (gtag.js) - Google Analytics