Ajax製作智能提示搜索

来源:http://www.cnblogs.com/wangwangwangMax/archive/2016/07/29/5719089.html
-Advertisement-
Play Games

Ajax製作智能提示搜索[js效果,後續博客園會更下麵顯示的部分,只是一個簡單的搜索結果,真正的大型網站用的是lucene全文搜索引擎。 歡迎關註博客園wangwangwangMax, 新浪:NewITdog, 微信公眾號:wangwangwangMax ...


一、效果圖:

       

 

二、實現過程:

     思路:

     

 

三、部分代碼:

      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         }

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄索引 【無私分享:ASP.NET CORE 項目實戰】目錄索引 簡介 本章我們來介紹下Asp.net Core 使用 CodeFirst 創建資料庫和表 修改EF上下文對象,添加測試類 我修改了一下名字,Domains 改為了 wkmvc.Data 我們新建一個文件夾 Models 用於存放 模 ...
  • 這兩天發現一個model binding中的坑,就是action中的參數名不能和屬性重覆,否則綁定不了,參數始終是null, 舉例說明: T_Account類定義如下 在Edit視圖提交時的處理方法定義 註意此時Include中有Account屬性,參數名也叫account, account始終為n ...
  • 這個系列是,基礎學習系列的最後一部分,這裡,我打算翻譯一篇國外的技術文章結束這個基礎部分的學習;後面打算繼續寫深入學習MVC系列的文章,之所以要寫博客,我個人覺得,做技術的,首先得要懂得分享,說不定你自己以為正確的東西,存在瑕疵,分享出來,大家也可以互相進步。這樣整個生態圈也會越來越好。不是麽? 好 ...
  • rows 是客戶端傳過來的行數,page是頁碼,傳參就需要就兩個參數就行,sql語句中_row 和_page 自己聲明的局部變數,值還是相應的row 和page ,為了運算而已。 用資料庫類獲得它的DataTable,轉換為json格式通過一般處理程式傳到客戶端,客戶端顯示就ok了。這裡我使用的是e ...
  • 說明:本文是個人翻譯文章,由於個人水平有限,有不對的地方請大家幫忙更正。 原文: "dotnet restore" 翻譯: "dotnet restore" 名稱 還原一個項目的依賴項和工具 概要 `dotnet restore [ source] [ packages] [ disable par ...
  • ...
  • 寫這點東西主要是看到知乎上有人在討論相關的問題,但是有不少人都在說一些不嚴謹,甚至是完全錯誤 但是流傳甚廣的東西,甚至是一些大神都在說,以下根據我的回答總結。 一個很常見又很低級的誤區是:認為引用類型保存在堆上,值類型保存在棧上……其實這個問題幼稚得我懶得說……但是實在又忍不住吐槽。 很多人都在說這 ...
  • 開篇 每一個版本的.net都會引入一些新的特性,這些特性方便開發人員能夠快速實現一些功能。雖然.net版本一直在更新,但是新版本對舊版本的程式都是相容的,在這一點上微軟做的還是非常好的。每次學一個新內容,第一次接觸的方法在腦海裡占的位置還是比較重要的,從剛開始接觸.net的多線程編程是使用Threa ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...