实时搜索

//index.php

    <script>
//        创建 XMLHttpRequest 对象
//        创建在服务器响应就绪时执行的函数
//        向服务器上的文件发送请求
//        请注意添加到 URL 末端的参数(q)
        function showResult(str)
        {
            if(str.length==0)
            {
                document.getElementById("livesearch").innerHTML="";
                document.getElementById("livesearch").style.border="0px";
                return;
            }
            if(window.XMLHttpRequest)
            {
                //IE7+,Firefox,Chrome,Opera,Safari
                xmlhttp = new XMLHttpRequest();
            }
            else{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                if(xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
                    document.getElementById("livesearch").style.border="1px solid #A5ACB2";
                }
            }
            xmlhttp.open("GET","livesearch.php?q="+str,true);
            xmlhttp.send();
        }
    </script>
    <body>
        <form>
            <input type="text" size="30" onkeyup="showResult(this.value)">
            <div id="livesearch"></div>
        </form>
    </body>
//livesearch.php

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("links.xml");

$x=$xmlDoc->getElementsByTagName('link');

$q = $_GET["q"];

if(strlen($q)>0)
{
    $hint="";
    for($i=0;$i<($x->length);$i++)
    {
        $y = $x->item($i)->getElementsByTagName('title');
        $z = $x->item($i)->getElementsByTagName('url');
        if($y->item(0)->nodeType==1)
        {
            //找到匹配搜索的链接
            if(stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
            {
                if($hint=="")
                {
                    $hint="<a href='".
                    $z->item(0)->childNodes->item(0)->nodeValue.
                            "'target='_black'>".
                            $y->item(0)->childNodes->item(0)->nodeValue."</a>";
                }
                else
                {
                    $hint = $hint."<br /><a href='";
                    $z->item(0)->childNodes->item(0)->nodeValue.
                            "'target='_blank'>".
                            $y->item(0)->childNodes->item(0)->nodeValue
                            ."</a>";
                }
            }
        }
    }
}
//如果没找到则返回"no suggestion"
if($hint=="")
{
    $response="no suggestion";
}
else
{
    $response = $hint;
}
echo $response;
?>
//links.xml

<?xml version="1.0" encoding="UTF-8"?>
<pages>
<link>
<title>HTML a 标签</title>
<url>http://www.runoob.com/tags/tag-a.html</url>
</link>
<link>
<title>HTML br 标签</title>
<url>http://www.runoob.com/tags/tag-br.html</url>
</link>
<link>
<title>CSS background 属性</title>
<url>
http://www.runoob.com/cssref/css3-pr-background.html
</url>
</link>
<link>
<title>CSS border 属性</title>
<url>http://www.runoob.com/cssref/pr-border.html</url>
</link>
<link>
<title>JavaScript Date 对象</title>
<url>http://www.runoob.com/jsref/jsref-obj-date.html</url>
</link>
<link>
<title>JavaScript Array 对象</title>
<url>http://www.runoob.com/jsref/jsref-obj-array.html</url>
</link>
</pages>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值