dedecms使用ajax实现搜索下拉提示功能

dedecms使用ajax实现搜索下拉提示功能
 点击下载

    这个功能主要实现的是用户在搜索的时候输入关键字,然后会出现下拉菜单,下拉菜单中出现的是站内所有包含这个关键字的文章的标题共用户选择,这个功能相对实用一点,即增加了用户体验,也可以让用户快速的找到想要的东西。功能基于php+jquery来实现,参考autocomplete,效果图如下:

本版为2013.3.23日更新版本,完美支持所有页面地址(包括生成的静态地址和伪静态地址),所有模型。

 下面讲解下具体实现步骤:

1、打开你的网站首页模板,在</head>之前加入

  1. <script language="javascript" type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/jquery-1.7.1.min.js"></script>
  2. <script type="text/javascript"
  3.     function lookup(inputString) { 
  4.         if(inputString.length == 0) { 
  5.             // Hide the suggestion box. 
  6.             $('#suggestions').hide(); 
  7.         } else { 
  8.             $.post("/plus/search_list.php", {queryString: ""+inputString+""}, function(data){ 
  9.                 if(data.length >0) { 
  10.                     $('#suggestions').show(); 
  11.                     $('#autoSuggestionsList').html(data); 
  12.                 } 
  13.             }); 
  14.         } 
  15.     } // lookup 
  16.      
  17.     function fill(thisValue) { 
  18.         $('#inputString').val(thisValue); 
  19.         setTimeout("$('#suggestions').hide();", 200); 
  20.     } 
  21.  
  22. </script> 

jquery-1.7.1.min.js这个jquery库需要你自己下载,这里就不多说了。本人用的是这个版本的。

这段代码中的search_list.php就是本文下载的文件,下载后放入/plus目录下。

2、打开head.htm,找到搜索部分的from表单代码修改为

  1. <form  name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php" id="formkeyword"> 
  2.           <label for="header-subscribe-email" class="text">&nbsp;</label> 
  3.           <input type="hidden" name="kwtype" value="0" /> 
  4.           <input type="text" name="q" size="24"  value="在这里搜索..." onfocus="if(this.value=='在这里搜索...'){this.value='';}"  onblur="if(this.value==''){this.value='在这里搜索...';}" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" class="f-text"> 
  5.           <input type="submit" class="commit" value="搜索" /> 
  6.           <div class="suggestionsBox" id="suggestions" style="display: none;"> 
  7.             <div class="suggestionList"><ul id="autoSuggestionsList"></ul></div> 
  8.           </div> 
  9.         </form> 

 这部分可以根据你自己的代码的实际情况具体修改,主要是输入关键字的input和下边加的DIV层。

3、打开你自己的样式表css文件,在最后加入

  1. .suggestionsBox { position:relative; left:0px;width250pxbackgroundwhite;border1px solid #dcdcdc;color#323232z-index:999; } 
  2. .suggestionList { margin0pxpadding0px; } 
  3. .suggestionList li { margin0px 0px 3px 0pxposition:relative;padding3pxcursorpointer;list-style:none;padding-left:5px;height:20px;overflow:hidden
  4. .suggestionList li:hover { background-color#659CD8; } 
  5. .jr{position:absolute;top:9px;right:-5px

此样式可以根据自己的网站定义噢。

到这添加的代码就完了,然后下载search_list.rar,下载后解压得search_list.php到放入/plus目录下。在这个文件里有详细注解。可根据实际情况调整。所有结果都是由这个文件来返回的。最后去前台试试您的效果把。

本文由似水星辰原创,JS代码站首发。

转载请注明:代码家园 » dedecms使用ajax实现搜索下拉提示功能

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • 刘老三™
    2014-10-10 15:28:01发表

    检索不了中文啊,只能英语和数字。。。

  • 孤魂野鬼cl
    2014-07-25 13:37:43发表

  • 似水星辰
    2013-03-25 17:45:52发表

    [em01] 此版程序已更新为支持所有地址。

  • 小美
    2012-09-28 11:44:39发表

    做这个相当辛苦(得意)

  • 小美
    2012-09-28 11:39:21发表

    做这个相当辛苦(得意)

  • 小美
    2012-08-10 18:01:45发表

    做这个相当辛苦(得意)