代理加盟

2023全新代理计划,一站式模板建站,铜牌代理低至699元送终身VIP,独立代理后台,自营贴牌。

您现在的位置: 麦站网 > 织梦大学 > 使用教程 >

DedeCMS用Ajax实现搜索实时匹配文章预览

来源:本站原创 发布时间:2019-03-30 00:00:00热度:我要评论(0

麦站模板建站平台(10年经验),服务数万家企业,固定透明报价。域名注册、主机/服务器、网站源码一站式服务。实体公司,专业团队,值得选择!超过1000套模板已登记版权,合规合法建站,规避版权风险!【点击获取方案】

        DedeCMS搜索增加Ajax实时预览功能修正版,实现用户在输入关键字搜索时,出现与该关键字的相关的所有文章的下拉列表,供用户选择,很大程度上提高了用户体验。这个功能在淘宝、京东之类的网站运用得较多,实现起来并不复杂。

淘宝搜索预选词

        该版本只适合数据量不是很大的网站,以免出现假死或崩溃。

搜索预选文章链接

        把以下JS代码放在网站底部</body>前即可,建议放在公共footer.htm模板下。

<script language="javascript" type="text/javascript" src="js/jquery-1.7.1.min.js"></script><!--先引入JS库,请自行下载-->
<script type="text/javascript"> 
    function lookup(inputString) { 
        if(inputString.length == 0) { 
            // Hide the suggestion box. 
            $('#suggestions').hide(); 
        }else{ 
            $.post("/plus/search_list.php", {queryString: ""+inputString+""}, function(data){ 
                if(data.length >0) { 
                    $('#suggestions').show(); 
                    $('#autoSuggestionsList').html(data); 
                } 
            }); 
        } 
    } // lookup 
    function fill(thisValue) { 
        $('#inputString').val(thisValue); 
        setTimeout("$('#suggestions').hide();", 200); 
    } 
</script> 

       搜索功能 一般是在head.htm头部模板,注意以下标红的地方。

<form name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php" id="formkeyword"> 
    <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="搜索" /> 
    <p class="suggestionsBox" id="suggestions" style="display: none;"> 
        <p class="suggestionList"><ul id="autoSuggestionsList"></ul></p> 
    </p> 
</form> 

        在/plus目录下新建search_list.php文件,代码如下,橙色部分请根据实际情况修改。复制代码是,请删除“分隔符”。

<?php
header("Content-Type: text/html;charset=utf-8");
require_once(dirname(__FILE__)."/../include/common.inc.php");
global $dsql;
if(isset($_POST['queryString'])) {
    $queryString = $_POST['queryString'];
    if(strlen($queryString) >0) {
        $dsql->SetQuery("SELECT id,title,click FROM #分隔符@__archives WHERE title LIKE '%$queryString%' and arcrank=0 order by click desc LIMIT 10");
        //数据库查询,本例调用10条。
        $dsql->Execute();
        while ($result = $dsql->GetArray()) {
            $bb=$result["title"];
            $bb=str_ireplace($queryString, '<b><font color=\'red\'>'.$queryString.'</font></b>', $bb);
            echo '<li><a target="_blank" href="/view-'.$result["id"].'.html">'.$bb.'</a></li>';
        }
    }else{
    } 
}else{
echo '参数为空!!';
}
?>

        注:本例只适合伪静态或动态,静态URL的修改方法《DedeCMS实现百度搜索下拉菜单提示信息功能》对橙色部分的URL处理可自行研究。原作者是点击标题后传到搜索栏,再回车或点击搜索按钮才能搜索,比较麻烦,修改为直接跳转到新窗口打开。

    转载请注明来源网址:https://www.xiuzhanwang.com/dedecms_jq/1323.html

    发表评论

    评论列表(条)

       
      QQ在线咨询
      VIP限时特惠