这个功能主要实现的是用户在搜索的时候输入关键字,然后会出现下拉菜单,下拉菜单中出现的是站内所有包含这个关键字的文章的标题共用户选择,相对DedeCMS原生的搜索这个功能实用一点,既增加了用户体验,也可以让用户快速的找到想要的东西。功能基于php+jquery来实现,参考autocomplete,
打开你的网站首页模板,在</head>之前加入
01 |
<script language= "javascript" type = "text/javascript" src= "{dede:global.cfg_templets_skin/}/js/jquery-1.7.1.min.js" ></script> |
02 |
<script type = "text/javascript" > |
03 |
function lookup(inputString) { |
04 |
if (inputString.length == 0) |
06 |
// Hide the suggestion box. |
07 |
$( '#suggestions' ).hide(); |
11 |
$.post( "/plus/search_list.php" , {queryString: "" +inputString+ "" }, function (data) |
15 |
$( '#suggestions' ).show(); |
16 |
$( '#autoSuggestionsList' ).html(data); |
21 |
function fill(thisValue) { |
22 |
$( '#inputString' ).val(thisValue); |
23 |
setTimeout( "$('#suggestions').hide();" , 200); |
|
jquery-1.7.1.min.js这个jquery库需要你自己下载,这里就不多说了。本人用的是这个版本的。
这段代码中的search_list.php就是本文下载的文件,下载后放入/plus目录下。
打开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" ></label><input type = "hidden" name= "kwtype" value= "0" /><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" ><input type = "submit" class= "commit" value= "搜索" /> |
3 |
<div class= "suggestionsBox" id = "suggestions" style= "display: none;" > |
4 |
<div class= "suggestionList" > |
5 |
<ul id = "autoSuggestionsList" > |
|
这部分可以根据你自己的代码的实际情况具体修改,主要是输入关键字的input和下边加的DIV层。
打开你自己的样式表css文件,在最后加入
17 |
margin: 0px 0px 3px 0px; |
27 |
.suggestionList li:hover { |
|
到这添加的代码就完了,然后下载search_list.rar,下载后解压得search_list.php到放入/plus目录下。在这个文件里有详细注解。可根据实际情况调整。所有结果都是由这个文件来返回的。最后去前台试试您的效果把。
上一篇: