`
bei-jin-520
  • 浏览: 111464 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

仿GOOGLE搜索提示

    博客分类:
  • Ajax
阅读更多
public class SearchSuggest extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
String search = request.getParameter("search");
String sql = "select title from suggest where title like '"+search+"%' order by title";

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
Vector vData = new Vector();
//response.setContentType("text/xml");
java.io.PrintWriter out = response.getWriter();

try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/acegi";
conn = DriverManager.getConnection(url, "root", "root");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next())
{
vData.add(rs.getString("TITLE"));
}
StringBuffer buf = new StringBuffer();
for (int i=0;i<vData.size();i++)
{
String keyword = (String)vData.get(i);
buf.append(keyword+"\n");
}
out.print(buf.toString());
} catch (Exception e) {

e.printStackTrace();

} finally {//最后关必记录集,Connection对象
try {
// this will close any associated ResultSets
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException sqle) {
}
}
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {

doPost(request, response);
}
}
【js部分 】

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
}
}
function createAjaxObj(){
  var httprequest=false
  if (window.XMLHttpRequest)
  { // if Mozilla, Safari etc
    httprequest=new XMLHttpRequest()
    if (httprequest.overrideMimeType)
      httprequest.overrideMimeType('text/xml')
   }
   else if (window.ActiveXObject)
   { // if IE
     try {
       httprequest=new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e){
       try{
          httprequest=new ActiveXObject("Microsoft.XMLHTTP");
       }
       catch (e){}
     }
   }
   return httprequest
}
//Our XmlHttpRequest object to get the auto suggest
var searchReq = createAjaxObj();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
if (searchReq.readyState == 4 || searchReq.readyState == 0) {
var str = escape(document.getElementById('txtSearch').value);
searchReq.open("GET", 'search?search=' + str, true);
searchReq.onreadystatechange = handleSearchSuggest;
searchReq.send(null);
}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
if (searchReq.readyState == 4) {
var ss = document.getElementById('search_suggest')
ss.innerHTML = '';
var str = searchReq.responseText.split("\n");
for(i=0; i < str.length - 1; i++) {
//Build our element string.  This is cleaner using the DOM, but
//IE doesn't support dynamically added attributes.
var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
suggest += 'onmouseout="javascript:suggestOut(this);" ';
suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
suggest += 'class="suggest_link">' + str[i] + '</div>';
ss.innerHTML += suggest;
}
}
}

//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('txtSearch').value = value;
document.getElementById('search_suggest').innerHTML = '';
}
数据库定义语句
DROP TABLE IF EXISTS SUGGEST;
CREATE TABLE SUGGEST (
  SUGGEST_ID int(11) NOT NULL auto_increment,
  TITLE varchar(255) default NULL,
  PRIMARY KEY  (SUGGEST_ID)
)TYPE=MyISAM ;

LOCK TABLES SUGGEST WRITE;
INSERT INTO SUGGEST VALUES (1,'Home'),(2,'TECHNOLOGIES'),(3,'SOLUTIONS  AND SOFTWARE'),(4,'Websites'),(5,'Web Apps'),(6,'Applications'),(7,'E-COMMERCE SOLUTIONS'),(8,'osCommerce'),(9,'CMS / Portals'),(10,'Microsoft .NET'),(11,'J2EE'),(12,'LAMP'),(13,'PHP'),(14,'MySQL'),(15,'Apache'),(16,'ASP.NET'),(17,'Windows Applications'),(18,'JSP'),(19,'SWING'),(20,'Web Technologies'),(21,'XHTML'),(22,'RSS / ATOM'),(23,'XML'),(24,'XSL'),(25,'XAML'),(26,'AJAX'),(27,'About DynamicAJAX'),(28,'CSS'),(29,'The Basics'),(30,'SAJAX'),(31,'About The Site Images'),(32,'About Me'),(33,'JavaScript'),(34,'RSS 2.0'),(35,'ATOM 1.0'),(36,'Search Engine Optimization'),(37,'Flash'),(38,'Open Source'),(39,'HTTP Server'),(40,'Full Text Search'),(41,'Best Practices'),(42,'XML Schema Definitons'),(43,'Web Content Accessibility Guidelines'),(44,'Printable Pages'),(45,'Search Engine'),(46,'Navigation'),(47,'Direct Web Remoting'),(48,'Mars Exploration Rovers'),(49,'Cassini'),(50,'Fun with Queries'),(51,'SEO Tricks and Tactics'),(52,'osCommerce Contributions'),(53,'PHP & IIS'),(54,'Regular Expressions'),(55,'Rants'),(56,'URL Rewrite'),(57,'Fun with CSS'),(58,'ActionScript'),(59,'Visual Studio 2005'),(60,'SQL Server'),(61,'Search Engine Commands'),(62,'Web Site Layout'),(63,'AJAX'),(64,'AJAX Basics'),(65,'ATLAS'),(66,'SAJAX'),(67,'Tutorials'),(68,'Novice'),(69,'Frameworks'),(70,'Ajax.NET'),(71,'Framework Tutorials'),(72,'SAJAX'),(73,'Ajax.NET'),(74,'Direct Web Remoting'),(75,'Intermediate'),(76,'AJAX Example Sites'),(77,'My Tutorials'),(78,'AJAX Web Chat Part 1'),(79,'The JavaScript'),(80,'Sending The Request'),(81,'Color Schemes'),(82,'AJAX Resources'),(83,'The Backend'),(84,'Usability Additions'),(85,'AJAX Instant Messenger Part 1'),(86,'Ruby on Rails'),(87,'Crazy Queries'),(88,'XmlHttpRequest Methods'),(89,'XmlHttpRequest Properties'),(90,'AjaxTags'),(91,'Direct Web Remoting'),(92,'My URL Rewriting'),(93,'Great Quotes'),(94,'IXSSO Queries'),(95,'AFLAX'),(96,'Other Technologies'),(97,'Microsoft Indexing Server'),(98,'.NET & CISSO');
UNLOCK TABLES;

【suggest.html】
<html>
<head>
<style type="text/css" media="screen">
body {
font: 11px arial;
}
.suggest_link {
background-color: #FFFFFF;
padding: 2px 6px 2px 6px;
}
.suggest_link_over {
background-color: #E8F2FE;
padding: 2px 6px 2px 6px;
}
#search_suggest {
position: absolute;
background-color: #FFFFFF;
text-align: left;
border: 1px solid #000000;
}
</style>
<script language="JavaScript" type="text/javascript" src="ajax_search.js"></script>
</head>
<body>
<h3>Simple AJAX Search Suggest</h3>
<div style="width: 500px;">
<form id="frmSearch" action="">
<input type="text" id="txtSearch" name="txtSearch" alt="Search Criteria" onkeyup="searchSuggest();" autocomplete="off" />
<input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
<div id="search_suggest">
</div>
</form>
</div>
</body>
</html>
分享到:
评论
1 楼 yinje2005 2009-02-12  
我想请问下啊!能实现输入拼音转成汉字的搜索吗?谢谢啊!

相关推荐

    仿google搜索提示

    【标题】"仿Google搜索提示"是一个项目,旨在模仿Google搜索引擎在用户输入关键词时自动提供搜索建议的功能。这种功能在很多网站的搜索框中都能看到,它能够提高用户体验,帮助用户快速找到他们可能感兴趣的搜索词。...

    仿谷歌搜索提示

    【标题】"仿谷歌搜索提示"的实现与详解 在IT行业中,用户界面的友好性和易用性至关重要,其中搜索提示功能就是一个典型的例子。"仿谷歌搜索提示"是指模仿谷歌搜索引擎在用户输入关键字时,实时显示相关搜索建议的...

    仿谷歌搜索提示功能源码20130301

    仿谷歌搜索提示功能源码 源码描述: 此源码仿谷歌搜索提示功能 利用了AjaxControlToolkit.dll控件的autocompleteextender 当用户在搜索框输入信息时,程序会自动从数据库检索信息 无刷新方式显示在输入框下方,提示...

    Ajax仿google搜索提示Asp数据库版 -ASP源码.zip

    【Ajax仿Google搜索提示Asp数据库版 - ASP源码】是一个基于ASP技术实现的搜索提示功能,它模拟了Google搜索引擎的实时搜索建议效果。在网页中输入关键字时,该功能能够快速从数据库中检索相关数据,并实时显示为下拉...

    Ajax仿google搜索提示Asp数据库版

    【Ajax仿Google搜索提示Asp数据库版】是一个基于ASP(Active Server Pages)技术实现的搜索提示功能,旨在模仿Google搜索引擎的实时搜索建议功能。这个功能能够显著提升用户体验,当用户在搜索框输入关键词时,系统...

    仿google搜索提示 SuggestFramework的使用

    标题中的“仿google搜索提示 SuggestFramework的使用”是指一种基于特定框架(SuggestFramework)构建的搜索提示功能,该功能模仿了Google搜索引擎在用户输入关键词时提供的实时搜索建议。这种功能可以极大地提升...

    仿google搜索提示效果和二级联动

    本项目“仿google搜索提示效果和省市二级联动”旨在模仿Google搜索引擎的实时搜索建议功能,并结合中国省市的二级联动选择,为用户提供更加智能化的交互体验。下面我们将深入探讨这一项目的实现原理和涉及的技术栈。...

    ASP源码—Ajax仿google搜索提示效果 数据库版.zip

    在本案例中,“ASP源码—Ajax仿google搜索提示效果 数据库版.zip”是一个包含ASP源代码的压缩包,其目标是实现一个类似于Google搜索框的实时搜索提示功能,利用Ajax(Asynchronous JavaScript and XML)技术,用户在...

    基于ASP的Ajax仿google搜索提示效果 数据库版.zip

    标题 "基于ASP的Ajax仿google搜索提示效果 数据库版.zip" 涉及到的是一个使用Active Server Pages (ASP)技术构建的Web应用程序,该程序旨在实现类似Google搜索的实时搜索提示功能,同时结合了Ajax(异步JavaScript和...

    弹出模态层 仿Google搜索提示(异步获取数据)

    "弹出模态层 仿Google搜索提示(异步获取数据)"是一个典型的例子,它结合了多项技术,旨在提高用户体验,尤其是对于搜索功能的使用。这个项目的核心是利用jQuery进行异步数据获取,为用户提供即时的搜索建议,同时...

    Ajax仿Google搜索提示ASP+Access数据库版

    **Ajax仿Google搜索提示ASP+Access数据库版** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。Google Suggest是Google搜索引擎中的一个特性,它会在用户输入...

    Qt 控件 实现 QComboBox输入自动提示功能(仿Google搜索提示)

    而实现QComboBox输入自动提示功能,可以极大地提升用户体验,类似于Google搜索框的自动完成效果。这个功能在开发过程中常用于减少用户的输入负担,提高数据选择的效率。本篇将详细介绍如何在C++中使用Qt库来实现这一...

    Asp+Ajax仿google搜索提示效果 数据库版-ASP源码.zip

    ASP源码,压缩包解压密码:www.cqlsoft.com

    ASP搜索框仿GOOGLE智能提示

    ASP实现搜索框仿GOOGLE智能提示,随输入的信息智能显示相关数据

    仿goolge搜索提示

    在IT行业中,搜索引擎的开发是一项复杂且技术含量高的工作,而“仿Google搜索提示”则是一种常见的用户体验优化功能。这个功能通常被称为自动补全或预测搜索,它可以在用户输入搜索关键词时提供相关的搜索建议,极大...

    QComboBox输入自动提示功能(仿Google搜索提示)

    在许多用户界面设计中,为了提升用户体验,我们会为输入框添加自动提示功能,就像Google搜索那样,用户在输入时能实时看到匹配的建议。本教程将详细介绍如何利用`QComboBox`和`QListWidget`来实现这种输入自动提示的...

    ASP实例开发源码—Asp+Ajax仿google搜索提示效果 数据库版.zip

    在这个实例中,Ajax主要负责在后台与服务器进行异步通信,获取搜索提示数据,然后在前端动态显示。 首先,我们需要了解ASP中的基本元素。ASP页面通常包含HTML、VBScript或JScript代码,以及可能的服务器端脚本。当...

    QCombox自动提示,仿谷歌搜索功能

    在本项目“QCombox自动提示,仿谷歌搜索功能”中,我们将看到如何结合`QComboBox`和`QListWidget`来实现这样的效果。 首先,我们要理解`QComboBox`的基本用法。它有两个主要的组成部分:一个可编辑的文本框和一个...

    仿google的搜索

    同时,为了提供良好的用户体验,还可以考虑添加搜索提示的延迟加载,即在用户停止输入一段时间后才发送请求,减少不必要的网络交互。 总的来说,“仿google的搜索”项目结合了Ajax的异步交互优势和Lucene的高效搜索...

Global site tag (gtag.js) - Google Analytics