ASP+AJAX做类似google的搜索提示

主要要文件有:

Index.html 实现功能,一个文本框,输入内容并实现提示

search.asp 查询功能,让文本框输入的内容在数据库中查询,然后返回给客户端

conn.asp 数据库连接功能,实现与数据库相连 xmlhttp.js AJAX 核心部分,用来把客户端的数据传给服务端,再把服务端的数据返还给客户端.

style.css 样式文件,主要是对google提示框查询到的内容进行样式化处理

先看第一个文件style.css

@charset "utf-8"; 

/* CSS Document */ 

body 

font-size:12px; 

font-family:Arial,Helvetica,sans-serif; 

#search_suggest 

position:absolute; 

background:#FFFFFF; 

text-align:left; 

border:1px #000000 solid; 

.suggest_link_over 

background-color:#e8f2fe; 

padding:2px 6px; 

.suggest_link 

padding:2px 6px; 

background-color:#FFFFFF; 

.none 

display:none; 

第二个文件: xmlhttp.js 

// JavaScript Documentrt 

var xmlHttp = createXmlHttpRequest(); 

function createXmlHttpRequest() 

var xmlhttp = null; 

try 

xmlhttp = XMLHttpRequest(); 

catch(e1) 

try 

xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 

catch(e2) 

try 

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 

catch(e3) 

xmlhttp = false; 

alert("创建失败!"); 

return xmlhttp; 

function change_key() 

if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) 

var str = document.getElementById("txt_key").value; 

xmlHttp.open("get","search.asp?key=" + str,true); 

xmlHttp.onreadystatechange = handSearchRequest; 

xmlHttp.send(null); 

function handSearchRequest() 

if (xmlHttp.readyState == 4) 

var div = document.getElementById("search_suggest"); 

div.innerHTML = ""; 

var str = xmlHttp.responseText.split("|"); 

for (var i=0; i<str.length; i++) 

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>’; 

div.innerHTML += suggest; 

function setSearch(div_value) 

document.getElementById("txt_key").value = div_value; 

document.getElementById("search_suggest").className = ’none’; 

function suggestOver(div_value) 

div_value.className = ’suggest_link_over’; 

function suggestOut(div_value) 

div_value.className = ’suggest_link’; 

第三个文件:conn.asp

<% 

set conn = Server.CreateObject("Adodb.Connection") 

connStr = "Provider=SQLOLEDB;Server=./SQLEXPRESS;UID=sa;PWD=sa;Initial catalog=test;" 

conn.ConnectionString = connStr 

conn.open 

%> 

第四个文件:search.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 

<!-- #include file="conn.asp" --> 

<%key = request.QueryString("key") 

if (key <> "") then 

key = replace(key,"/","") 

key = replace(key,"’","or","") 

sel_sql = "select [key] from [key] where [key] like ’" & key & "%’" 

dim keyword 

keyword = "" 

set rs = conn.execute (sel_sql) 

do while not rs.eof 

keyword = keyword & rs(0) & "|" 

rs.movenext 

loop 

response.Write(keyword) 

end if 

%> 

最后一个结果文件:index.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=utf-8" /> 

<title>google提示 </title> 

<mce:script src="xmlhttp.js" mce_src="xmlhttp.js" ></mce:script> 

<link rel="stylesheet" type="text/css" href="style.css" mce_href="style.css"> 

</head> 

<body> 

<form id="form1" name="form1" method="post" action=""> 

<input name="txt_key" type="text" id="textarea" autocomplete="off" onkeyup="change_key()"/><br/> 

<div id="search_suggest" ></div> 

</form> 

</body> 

</html>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)