Ajax制作智能提示搜索

一、效果图:

二、实现过程:

思路:

三、部分代码:

html:

<div id="searchbox">
        <div><input type="text" id="txtTitle" /></div>
        <div id="btnSelect"><a href="javascript:;">Google</a></div>
    </div>
    <div id="dtitles"></div>

css代码:

 1 * {
 2     padding:0px;
 3     margin:0px;
 4 }
 5
 6 #searchbox {
 7     margin-top:10px;
 8     height:37px;
 9     width:550px;
10 }
11 #searchbox div {
12     float:left;
13 }
14 #txtTitle {
15    height:35px;
16    width:440px;
17    line-height:35px;
18    border:solid 1px #4791FF;
19 }
20 #btnSelect a{
21    width:100px;
22    height:37px;
23    background:#167ED9;
24    display:block;
25    line-height:37px;
26    color:#ffffff;
27    text-align:center;
28 }
29 a:link {
30     text-decoration:none;
31 }
32 a:hover {
33     cursor:pointer;
34 }
35 #dtitles {
36     width:540px;
37     height:90px;
38     border:solid 1px #CCCCCC;
39     display:none;
40     font-size:12px;
41 }
42 .li1 {
43     background:#F0F0F0;
44 }

js代码:

 1 $(function ()
 2 {
 3     //1.页面加载之后,找到文本框的内容对它触发一个事件
 4     $("#txtTitle").keyup(function ()
 5     {
 6         //2.获取到文本框的内容,注意去空格
 7         var title = $.trim($("#txtTitle").val());
 8         //3.获取到输入的内容之后,就要通过ajax传给后台
 9         $.post("/Handler3.ashx", { "title": title }, function (data)
10         {
11             if (title == "") {
12                 $("#dtitles").hide();
13             }
14             else
15             {
16                 //显示展示div,把它清空
17                 $("#dtitles").show().html("");
18                 if (data == "") {
19                     $("#dtitles").text("没有相关数据!");
20                 }
21                 else {
22                     $("#dtitles").append(data);
23                     //4.鼠标移上去之后,加一个背景
24                     $("li").hover(function ()
25                     {
26                         $(this).addClass("li1");
27                     }, function ()
28                     {
29                         $(this).removeClass("li1");
30                     });
31                 }
32             }
33         });
34     });
35 });

ajax:

 1 public void ProcessRequest(HttpContext context)
 2         {
 3            //1.提交过来之后,我们要接收
 4             string title=context.Request.Form["title"];
 5             //2.得到一个sql语句
 6             string strsql = string.Format("select top 5 title from RNews where Title like ‘%{0}%‘ ",title);
 7             //3.那得到sql怎么去做处理?
 8             DataTable dt = SqlHelper.ExecuteDataSetText(strsql,null).Tables[0];
 9             //4.我们最后要返回的是一个列表,要做字符串拼凑
10             StringBuilder sb = new StringBuilder();
11             //4.1判断得到的sql结果里面是否有数据
12             if (dt.Rows.Count > 0)
13             {
14                 //4.1.1
15                 sb.Append("<ul>");
16                 for (int i = 0; i < dt.Rows.Count; i++)
17                 {
18                     sb.Append(string.Format("<li>{0}</li>", dt.Rows[i][0].ToString()));
19                 }
20                 sb.Append("</ul>");
21             }
22             context.Response.Write(sb.ToString());
23         }
时间: 2024-10-13 00:21:01

Ajax制作智能提示搜索的相关文章

Servlet+Ajax实现搜索智能提示

一般在百度搜索框输入关键词时,会弹出一些相关信息提示,方便点选: 页面(search.jsp): 1 <input type="text" name="keyWords" id="keyWords" style="width:200px; height:20px;" /> 2 <input type="button" id="button" value="百度

使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】

项目中常常用到搜索,特别是导航类的网站.自己做关键字搜索不太现实,直接调用百度的是最好的选择.使用jQuery.ajax的jsonp方法可以异域调用到百度的js并拿到返回值,当然$.getScript也可以实现跨域调用js. jsonp快速入门: [原创]说说JSON和JSONP,也许你会豁然开朗,含jQuery用例 关于jquery.ajax的jsonp方法是用以及其error回调函数不能正确执行,请参考园长dudu的文章: jquery ajax中使用jsonp的限制 jQuery插件jQu

jquery php 百度搜索框智能提示效果

这个程序是利用php+ajax+jquery 实现的一个仿baidu智能提示的效果,有需要的朋友可以下载测试哦. 代码如下 index.html文件,保保存成index.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&qu

JQuery AutoComplete搜索智能提示

首先需要引入的文件有: jquery-ui-1.10.4.custom.min.cssjquery-ui-1.10.4.custom.min.js 然后在后台组织json格式的数据,组织成一个list型数据String id;String label;String value; 如: var availableTagsJSON = [ { label: "C#", value: "C#", id: "1" }, { label: "C+

美团搜索-搜索引擎关键字智能提示的一种实现[转]

http://tech.meituan.com/pinyin-suggest.html --------------------------------------------------------------------- 快照: 问题背景 搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户搜索体验. 美团CRM系统中存在数以百万计的商家,为了让用户快速查找到目标商家,我们基于solrcloud实现了商家搜索模块.用户在查找商

Ternary Search Tree 应用--搜索框智能提示

前面介绍了Ternary Search Tree和它的实现,那么可以用Ternary Search Tree来实现搜索框的只能提示,因为Ternary Search Tree的前缀匹配效率是非常高的,总体思路如下(其中很多可以根据自己的需要修改,我只是写出我的做法): 比如搜索歌曲时智能提示: 建立Ternary Search Tree 将所有歌曲名的字符串放置在一个map中,key为歌曲名.value存储歌曲信息,可以是一个类对象domain,在这里可以按照key值将相同歌曲的播放次数累加,并

Eclipse安装插件支持jQuery,Js智能提示

最近工作中用到jQuery插件,需要安装eclipse插件才能支持jQuery智能提示,在网上搜索了一下,常用的有三个插件支持jQuery的智能提示:1.jQueryWTP2.Spket3.Aptana 在安装插件之前需要先安装eclipse,如果已经安装了eclipse,可以直接看下面的插件安装方法,本人使用的Fedora 12,操作如下:1.直接打开”应用程序”-->”系统工具”-->”终端”2.输入命令”su”,这个命令是临时切换到root用户3.输入root用户的密码4.输入命令”yu

jQuery打造智能提示插件二(可编辑下拉框)

在上一篇 jQuery打造智能提示插件 上改进,增加下拉按钮,修复点击下拉区域外不隐藏BUG 效果 下拉按钮素材: js封装,注意红色部分为BUG修复,然后传入boxwidth不带px: /* /// <reference path="jquery-autocomplete2.0.js" /> zhangs 20140516 */ (function($) { $.fn.combox = function(options) { var KEY = { UP: 38, DOW

一个基于jquery的智能提示控件intellSeach.js

一.需求 我们经常会遇到[站内搜索]的需求,为了提高用户体验,我们希望能做到像百度那样的即时智能提示.例如:某公司人事管理系统,想搜索李XX,只要输入“李”,系统自然会提示一些姓李的员工,这样方便用户使用.说白了,就是用户边输入,系统会提示相关的结果:或者,当用户点击搜索框时,就推荐一些内容,如360.百度都会提示今天的主要新闻或搜索量大的内容. jquery 已经有一个这样的插件了,叫 autocomplete, 但我觉得不好用.关于autocomplete的介绍也很多,有兴趣的朋友可以去试试