中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AJAX怎么實現博客無刷新搜索功能

發布時間:2021-09-02 12:47:05 來源:億速云 閱讀:140 作者:chen 欄目:web開發

這篇文章主要講解了“AJAX怎么實現博客無刷新搜索功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“AJAX怎么實現博客無刷新搜索功能”吧!

搜索結果模板sample.xml

代碼如下:


<?xml version="1.0" encoding="utf-8"?>
<blogsearch>
    <!-- 每一個reslut就是一個搜索結果 -->
    <result>
        <!-- 日志的ID -->
        <logid>1</logid>
        <!-- 日志的標題 -->
        <logtitle>AJAX初體驗之上手篇</logtitle>
    </result>
</blogsearch>

每個result就是一個搜索結果,為了處理沒有找到相關內容的情況,我定義了當搜索結果為空時logid為#。
在完成XML文檔模板之后,就可以用ASP來動態生成搜索結果需要的XML文檔了。搜索的關鍵字采用POST方式來傳遞。

搜索結果輸出ajaxsearch.asp

代碼如下:


<!-- #include file="commond.asp" -->
<!-- #include file="include/function.asp" -->
<%
' commond.asp為數據庫連接文件
' function.asp中有要用到的函數CheckStr
Dim Search_Word,XML_Result,rsSearch,sqlSearch
Set rsSearch=Server.CreateObject("ADODB.RecordSet")
' 獲取搜索關鍵字
Search_Word=CheckStr(Trim(Request.Form("searchword")))
' XML文檔頭
XML_Result="<?xml version=""1.0"" encoding=""utf-8""?><blogsearch>"
IF Search_Word<>Empty Then
    ' 創建查詢SQL語句
    sqlSearch="SELECT log_ID,log_Title,log_Content FROM blog_Content WHERE log_Title LIKE '%"&Search_Word&"%' AND log_IsShow=True ORDER BY log_ID DESC" 
    ' 打開記錄集
    rsSearch.open sqlSearch,Conn,1,1
    ' 如果沒有搜索結果就產生一個結果,logid為#,標志著沒有搜索結果
    IF rsSearch.BOF AND rsSearch.EOF Then XML_Result=XML_Result&"<result><logid>#</logid><logtitle /></result>" 
    ' 循環輸出搜索結果
    Do While Not rsSearch.EOF
        ' 循環輸出每一個結果
        XML_Result=XML_Result&"<result><logid>"&rsSearch("log_ID")&"</logid><logtitle><![CDATA["&rsSearch("log_Title")&"]]></logtitle></result>"  
        rsSearch.MoveNext
    Loop
Else
    ' 關鍵字為空,則返回無搜索結果
    XML_Result=XML_Result&"<result><logid>#</logid><logtitle /></result>"
End IF
XML_Result=XML_Result&"</blogsearch>"
' 設置MIME Type為XML文檔
Response.ContentType = "application/xml"
'Response.CharSet = "utf-8"
' 輸出搜索結果
Response.Write(XML_Result)
%>

有了后臺搜索結果輸出的部分,就可以開始寫前臺搜索的部分了。
首先需要的是給用戶輸入搜索關鍵字及顯示搜索結果的地方,我用div來分別顯示這兩個部分:

ajaxsearch.htm

代碼如下:


<!-- 要用到JavaScript,外部鏈入 -->
<script type="text/javascript" src="ajaxsearch.js"></script>
<!-- 用戶輸入部分 -->
<div>
    <!-- 因為沒有用form,所以要處理input的keydown事件。在用戶按下回車后搜索 -->
    <input type="text" id="searchword" onkeydown="if(event.keyCode==13) AjaxSearch();" /> 
    <!-- 搜索按鈕 -->
    <input type="button" onclick="AjaxSearch();" value="搜索" />
</div>
<!-- 搜索結果顯示部分 -->
<div id="search_result">
    <!-- 初始時提示用戶輸入搜索關鍵字 -->
    <ul><li>請輸入關鍵字</li></ul>
</div>

完成了用戶輸入及結果輸出的部分,就可以開始寫最后的部分——客戶端程序了。
首先是創建XMLHttpRequest對象,這部分代碼不再多說,對AJAX稍有接觸應該都看得懂這段代碼,前篇教程中也有詳細注釋:

ajaxsearch.js(part1)

代碼如下:

 
var xmlObj = false;
var xmlResult;
try {
    xmlObj=new XMLHttpRequest;
}
catch(e) {
    try {
        xmlObj=new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch(e2) {
        try {
            xmlObj=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e3) {
            xmlObj=false;
        }
    }
}
if (!xmlObj) {
    alert("XMLHttpRequest init Failed!");
}

接下來是發送搜索請求部分:

ajaxsearch.js(part2)

代碼如下:


function AjaxSearch() {
    var searchword;
    // 獲取搜索關鍵字,并且進行URLEncode
    searchword=escape(document.getElementById("searchword").value);
    if(searchword=="") {
        // 如果關鍵字為空,則提示用戶輸入關鍵字
        document.getElementById("search_result").innerHTML="<ul><li>請輸入關鍵字!</li></ul>";
        return;
    }
    // 給出提示,正在搜索
    document.getElementById("search_result").innerHTML="<ul><li>正在加載,請稍候</li></ul>";
    // 打開一個連接,采用POST
    xmlObj.open ("POST", "ajaxsearch.asp", true);
    // 設置請求頭,表單內容格式為URLEncoded
    xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    // 設置完成請求后響應函數
    xmlObj.onreadystatechange=function() {
        // 完成響應
        if(xmlObj.readyState==4) {
            // 狀態正常
            if(xmlObj.status==200) {
                // 設置xmlResult為搜索結果XML文檔
                xmlResult=xmlObj.responseXML;
                // 調用AjaxShowResult()顯示搜索結果
                AjaxShowResult();
            }
        }
    }
    // 發送請求,內容為搜索的關鍵字
    xmlObj.send("searchword="+searchword);
}

最后是搜索結果的顯示:

ajaxsearch.js(part3)

代碼如下:


function AjaxShowResult() {
    var results,i,strTemp;
    // 獲取搜索結果集合
    results=xmlResult.getElementsByTagName("result");
    // 用無序列表來顯示搜索結果
    strTemp="<ul>";
    // 首先判斷搜索結果是否為空
    if(results[0].getElementsByTagName("logid")[0].firstChild.data=="#")
        // 是空,則顯示沒有符合的搜索結果
        strTemp=strTemp+"<li>無搜索結果</li>";
    else
        // 循環輸出每個搜索結果
        for(i=0;i<results.length;i++)
            strTemp = strTemp + "<li><a href='blogview.asp?logID=" + results[i].getElementsByTagName("logid")[0].firstChild.data + "'>" + results[i].getElementsByTagName("logtitle")[0].firstChild.data + "</a></li>"; 
    strTemp=strTemp+"</ul>";
    // 顯示搜索結果
    document.getElementById("search_result").innerHTML = strTemp
}

至此,一個完整的AJAX實例完成了。

感謝各位的閱讀,以上就是“AJAX怎么實現博客無刷新搜索功能”的內容了,經過本文的學習后,相信大家對AJAX怎么實現博客無刷新搜索功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临颍县| 桦甸市| 怀集县| 大英县| 海口市| 广丰县| 勐海县| 濮阳市| 新田县| 汽车| 佳木斯市| 梁山县| 西丰县| 屯昌县| 万宁市| 波密县| 满洲里市| 日土县| 霸州市| 卢湾区| 宜州市| 佳木斯市| 杨浦区| 镇平县| 商城县| 西平县| 霍邱县| 侯马市| 临城县| 台中市| 古浪县| 石门县| 永泰县| 伊通| 昭通市| 县级市| 开化县| 哈密市| 修武县| 成安县| 黑河市|