搜索建议(Searching Suggestion),已布置好样式

搜索引擎中对关键字的搜索建议实现 通过DWR和jQuery的结合使用,实现对搜索引擎中关键字的搜索建议。 立即下载
大家应该都看到过 GOOGLE 的搜索建议,就是当我们在输入关键词时,GOOGLE 会根据我们目前已输入的字显示相关的关键字建议,这就是搜索建议,现在很多网站都实现该友好的功能,如 YAHOO、狗狗搜索等。

实现该功能的思路就是:
  1. 在关键字输入框里,当用户按键弹起时,发送输入框里的字符串到服务器。
  2. 服务器根据收到客户端发来的字进入匹配搜索
  3. 将匹配用户已输入字的记录回发到客户端
  4. 客户端收到服务端的响应,输出建议。

其实就是异步回发(AJAX)。

下面是一个实例,实例实现的是搜索 SQL Server 默认数据库 Northwind 表 Customers 字段 CustomerID,当用户要输入框输入字时,返回该字段值与用户输入的字开头匹配的记录,即 CustomerID LIKE '用户已输入的字%'。

样式已设置好,显示建议的行为绝对位置,所以该行不会显示网页上的内容。

文件名:WordSuggest.aspx

源码如下:

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WordSuggest.aspx.cs" Inherits="WordSuggest" %>

<!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 runat="server">
    
<title>无标题页</title>
    
<style type="text/css">
    .CInput
{border:solid 1px gray;width:300px}
    #divSuggestions
{border:solid 1px gray;width:300px;background:#fff;visibility:hidden}
    #divSuggestions span
{display:block;padding:3px}
    
</style>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
    
<h1>搜索建议 DEMO</h1>
    
<span>http://www.code-studio.net </span>
    
<hr />
    
<table style="border-collapse:collapse;"><tr><td><asp:TextBox ID="txtInput" runat="server" CssClass="CInput" onkeyup="sendRqt(this)"></asp:TextBox>
    
<asp:Button ID="Button1" runat="server" Text="Submit" /></td></tr>
    
<tr style="position:absolute;"><td><div id="divSuggestions"></div></td></tr></table>
    
</div>
    
</form>
    
<script type="text/javascript">
    
var xhr;
    
var isIe=window.navigator.appName.indexOf("Netscape") == -1?true:false;

    
function $(sElmId){return document.getElementById(sElmId);}
    
function crtRqt(){
        
if(window.ActiveXobject)
            xhr
=new ActiveXObject("Microsoft.XMLHTTP");
        
else xhr=new XMLHttpRequest();
    }
    
function sendRqt(srcElm){
        
var sInput=srcElm.value;
        
if(sInput!=""){
            
var url="wordsuggest.aspx?t="+new Date().getTime()+"&w="+sInput;
            crtRqt();
            xhr.onreadystatechange
=hdlRsp;
            xhr.open(
"GET",url,true);
            xhr.send(
null);
        }
        
else $("divSuggestions").style.visibility="hidden";
    }
    
function hdlRsp(){
        
if(xhr.readyState==4&&xhr.status==200){
            
var rspText=xhr.responseText;
            
var oDiv=$("divSuggestions");
            
if(rspText!=""){
                
var arrRspText=xhr.responseText.split(',');
                
var sInnerHtml="";
                
for(var i=0;i<arrRspText.length;++i){
                    sInnerHtml
+="<span onmouseover='setStyle(this,true)' onmouseout='setStyle(this,false)'"
                                
+" onclick='setInput(this)'>"+arrRspText[i]+"</span>";
                }
                oDiv.innerHTML
=sInnerHtml;
                oDiv.style.visibility
="visible";
            }
            
else oDiv.style.visibility="hidden";
        }
    }
    
function setStyle(srcElm,bOver){
        srcElm.style.background
=bOver?"orange":"";
    }
    
function setInput(srcElm){
        $(
"<%=txtInput.ClientID %>").value=srcElm.innerHTML;
    }
    
</script>
</body>
</html>

.CS
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class WordSuggest : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
string strInput = string.IsNullOrEmpty(Request.QueryString["w"]) ? string.Empty : Request.QueryString["w"];
        
if (strInput.Trim().Length != 0)
        {
            Suggeste(strInput);
        }
    }

    
private void Suggeste(string originalStr)
    {
     
/* 搜索建议
      * 文件名: WordSuggest.aspx
      * 功能描述: 根据用户输入,在数据库 Northwind 的表 Customers 查找 CustomerID 字段值匹配的记录.
      
*/
        SqlConnection conn 
= new SqlConnection("data source=localhost;database=northwind;user id=sa;password=你的密码");
        
string cmdText = "SELECT TOP 10 CustomerID FROM Customers WHERE CustomerID LIKE @w";
        SqlParameter para 
= new SqlParameter("@w", string.Format("{0}%", originalStr));
        SqlCommand cmd 
= new SqlCommand();
        cmd.Connection 
= conn;
        cmd.CommandText 
= cmdText;
        cmd.Parameters.Add(para);
        conn.Open();
        SqlDataReader reader 
= cmd.ExecuteReader();
        System.Text.StringBuilder sb 
= new System.Text.StringBuilder();
        
while (reader.Read())
        {
            sb.AppendFormat(
"{0},", reader[0]);
        }
        reader.Close();
        conn.Close();
        Response.ContentType 
= "text/plain";
        Response.Clear();
        
if (sb.Length != 0)
        {
            Response.Write(sb.ToString().Remove(sb.Length 
- 1));
        }
        
else
        {
            Response.Write(
string.Empty);
        }
        Response.Flush();
        Response.Close();
    }
}
suggestion-react-search-input:基于输入的搜索的React的建议搜索输入 建议React输入搜索 基于输入的搜索的React的建议搜索输入。 输入选项后,它将在随后的搜索中显示为建议。 特征 支持键盘导航(上下箭头)。 支持通过在输入外部单击或按退出键来隐藏列表。 输入键支持提交(当提交功能时会触发)。 同样,当仅剩一项时,可以通过按Tab键触发提交。 作为提交的结果,功能被启动。 此功能必须作为此组件的属性提供。 如果此功能与任何建议的选项都不匹配,则可以采用所选的选项或输入的文本。 单击下拉列表中的项目时,将启动提交功能。 在这种情况下,其行为与通过按Enter键提交输入相同。 搜索时支持不区分大小写。 搜索空格和变音符号时,不影响匹配比较。 在开始提出建议之前,可以指定输入的文本的最小长度。 如果选择了某个项目,或将鼠标悬停在该项目上,则在提交时,将选择所选的选项。 输入新选项后,它将在以下搜索中显示为建议。 建议的状态可以是持久的,也 立即下载

相关推荐

Zlib1.2.11源码编译(Win10+VS2019)

下载 下载网址: zlib Home Site 得到文件: 解压缩到“D:\SourceCodes\zlib-1.2.11” 使用CMake配置、生成并打开项目 将CMakeLists.txt拖入CMake,配置(Configure): 生成(Generate) 打开项目(Open Project),CMake调用VS2019打开项目 生成debug版本 构建项目ALL_BUILD。成功生成debug版本 在“D:\Sourc...

Alexabc3000的专栏 1893

论文阅读:JQAC050(Twitter的影子禁令)

影子禁令

长行 1530

Cesium实战:如何在前端直接渲染TIFF影像(附完整代码与避坑指南)

本文详细介绍了如何在前端利用Cesium直接加载和渲染TIFF影像的完整技术方案。针对TIFF格式的地理影像数据,文章提供了从文件解析、坐标转换到像素处理与Cesium集成的全流程代码实现,并分享了性能优化与常见问题的避坑指南,帮助开发者高效实现三维地理可视化。

weixin_29290947的博客 314

Searchable之六(Voice Search和Search Suggestions)

十三,语言搜索(Voice Search) 你可以通过在你的searchable配置中添加android:voiceSearchMode属性来实现search dialog或widget语言功能的添加。 这样就添加了一个用于启动voice prompt的语音搜索的按钮。一但用户完成了speaking, 这个transcribed search query将传送到你的searchable a

Robin Hu的专栏 2237

数据库存储分层架构搭建:热数据 SSD 存储、冷数据归档的配置操作及性能对比分析

本文探讨了数据库存储分层架构的优化策略。随着数据量激增,传统单一存储模式面临成本与性能的平衡难题。文章提出通过热数据SSD加速和冷数据归档降本的分层方案,系统分析了热数据SSD配置、冷数据归档操作及性能对比。分层架构基于数据活跃度匹配存储介质,使热数据保持高性能访问,冷数据低成本存储,实现总体成本降低60%-80%的同时确保核心查询性能。文中详细介绍了硬件选型、数据库配置、数据迁移等技术细节,并强调了动态调整分层策略的重要性,为构建高效经济的数据库存储体系提供了完整解决方案。

jingjing45678的博客 1289

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉)

主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图

Vpn_zc的博客 1万+

Android 如何处理Search下的suggestion query/suggestion table/Intent action详解

Handling the suggestion queryWhen the Search Manager requests suggestions from your content provider, it calls your content provider's query() method. You must implement this method to search your suggestion data and return a Cursor pointing to the suggest

念茜的博客 5988

从RJPG到温度地图:基于大疆TSDK的热红外数据精准处理与Pix4D拼接实战

本文详细解析了如何利用大疆TSDK将无人机拍摄的热红外RJPG图像精准转换为带有地理坐标的温度TIFF文件,并完成Pix4D拼接生成正射温度地图的全流程。文章重点阐述了辐射定标的原理、TSDK关键参数(测量距离、湿度、发射率、反射温度)的设置与微调方法,以及Pix4D处理中的常见报错解决方案,旨在帮助用户实现从原始数据到可分析温度地图的精准处理。

docker7nomad的博客 464

elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)

一、查询建议介绍  1. 查询建议是什么? 查询建议,为用户提供良好的使用体验。主要包括: 拼写检查; 自动建议查询词(自动补全)  拼写检查如图: 自动建议查询词(自动补全):   2. ES中查询建议的API  查询建议也是使用_search端点地址。在DSL中suggest节点来定义需要的建议查询  示例1:定义单个建议查询词 POST twitter/_search { "quer...

weixin_34088583的博客 1187

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6269

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

OkGradle架构探秘:深入理解Java库搜索插件的网络请求与数据解析原理

OkGradle是一款专为IntelliJ和Android Studio打造的Java库搜索插件,它能够帮助开发者快速查找流行Java库的artifact ID,极大提升依赖管理效率。本文将深入剖析其架构设计,重点讲解网络请求与数据解析的核心原理,带您了解这款工具如何实现高效的库搜索功能。 ## 插件功能概览:直观高效的搜索体验 OkGradle插件提供了简洁直观的用户界面,让开发者能够轻松搜

gitblog_00425的博客 287

高通Camx功能feature分析之二:remosaic流程

本文介绍了Remosaic技术及其在图像处理中的应用。Remosaic是将4cell1像素排布还原为普通Bayer结构的过程,分为硬件和软件两种实现方式。文章详细解析了Remosaic流程,包括配流情况、Feature选择、初始化过程,以及触发拍照的完整流程。重点分析了从普通预览切换到全尺寸拍照的关键步骤:激活全尺寸RDI会话、生成请求、等待就绪、唤醒离线线程和重启预览。通过代码层面的分析,揭示了Remosaic技术如何实现高分辨率图像还原,同时说明了该过程中可能出现的预览定屏现象及其原因。

1879

Mistral Agents API实战:营养教练AI工作流搭建指南

AI Agent是实现自动化智能服务的核心范式,其本质是将大模型与工具调用、状态记忆、多步推理等能力系统性编排。理解Agent工作流原理,有助于构建可追溯、可调试、可扩展的生产级应用。Mistral Agents API通过标准化Connector(如web_search、image_generation)和内置conversation memory,大幅降低Agent工程门槛。相比LangChain等框架的手动编排,它更聚焦于任务交付而非架构胶水。本文以营养教练为典型场景,详解如何利用web_search

weixin_30940783的博客 368

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

基于大语言模型的AI Agent开发实战:从零构建智能编程助手

大语言模型(LLM)作为当前人工智能的核心技术,通过理解与生成自然语言,正在重塑软件开发的范式。其原理在于利用海量数据训练出的Transformer架构,能够对复杂语义进行深度推理。这一技术的核心价值在于,它将传统“编写具体指令”的编程模式,升级为“描述目标与约束”的智能协作模式,从而显著提升处理复杂、多变任务的效率。在实际应用场景中,LLM常被封装为具备自主规划与执行能力的智能体(AI Agent),通过调用各类工具(Tools)来完成特定目标。本文聚焦于AI Agent与代码生成技术的工程化落地,以La

weixin_33798152的博客 439

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

05 claude code 提示词如何构建

所有模板均支持通过无硬性长度限制:提示词不规定压缩比例(如50%),仅要求信息完整性。双重防呆机制:Preamble 和 Trailer 双重禁止工具调用,确保压缩任务原子性。结构化输出:强制使用<analysis>和<summary>标签,便于后处理和审计。场景化区分:BASE(全量)、PARTIAL(局部)、UP_TO(前瞻)三种模板应对不同压缩需求。

m0_73980980的博客 696

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RSSI 等通信参数说明

通信参数区分

qq_43231904的博客 1366

嵌入式库选型指南:静态库与动态库的生存级决策

在嵌入式系统中,静态库(.a)和动态库(.so)并非简单的编译选项,而是直面Flash容量、RAM限制、启动可靠性及OTA升级等物理约束的技术策略。其核心差异在于链接时机与内存布局:静态库在编译期合并代码,保障零依赖启动,适用于裸机、小Flash或高安全场景;动态库在运行时加载,支持共享内存与热更新,但需完整加载链与C库兼容性保障。技术价值体现在资源确定性、部署鲁棒性与维护可扩展性三重维度。典型应用场景包括MCU固件精简、RTOS驱动集成、工业网关多服务共享、以及AI模块OTA迭代。本文聚焦嵌入式特有约束,

weixin_33770878的博客 527

Google Chrome 浏览器打开搜索建议(联想补全)功能

在 Chrome 的设置中,点击“您与 Google - 同步功能与 Google 服务 - 改进搜索建议”即可开启搜索建议。一般情况下,Chrome 浏览器是默认关闭搜索建议功能的。

qq_61868658的博客 3254

Element:input输入框远程搜索返回输入建议的代码详解

本文主要讲述:详解使用Element中的inpit输入框,远程搜索返回输入建议。给出了包含输入文字即返回建议值的方法。

孙悟空 5024

手把手教你打造搜索历史与建议区域:从 UI 绘制到按需展示

在data中定义搜索历史的假数据,以方便后续渲染。在HBuilder中找到data节点,声明一个数组,并存放如aappappledata() {return {// 其他数据...

m0_57836225的博客 1235

关于搜索建议词的分析以及相应的优化方案

1. 背景 不管是全文搜索引擎,还是垂直搜索系统中,当用户在搜索????输入框中输入几个字的时候,会自动下来一些词去自动补全用户可能要搜的词语,这部分的功能,我们称作搜索建议器的功能(英文叫做"suggest")。本文将介绍下目前主流的搜索建议器的做法,并且给出了一个我们认为更好的搜索建议器的做法。 2. 搜索建议器的指导原则 这里,我们给出如下搜索联想词指导原则: 搜索联想词的个数是非常有限的,所以必须尽量有效 搜索联想词应该是能够最贴近用户想要的结果 搜索联想出来的词应该是能够**99%**搜索到商品

timchen525的专栏 1984

Android搜索建议(搜索联想)

Android的搜索建议,简言之,就是说当用户输入某一个关键词后,系统自动给出几个含有相近关键词的搜索建议。 效果图如下: MainActivity.java package zhangphil.search; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import an

Zhang Phil 5801

输入自动提示搜索提示功能(样式文件:suggestion.css)

.sugLayerDiv{ position:relative; overflow:hidden; /*DIV 内容溢出时隐藏*/ background:#fff; /*DIV 背景颜色*/ border:#c5dadb 1px solid; /*DIV 边框样式*/ display:none; /*DIV 初始隐藏*/ }

1377
上一篇: 全国各省市联动下拉列表(异步动态加载)
LikeCode
博客等级 码龄20年 194粉丝 2原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值