جستجو آجاکس,آنی (مثل فیس بوک)

یکی از روش های جدید در جستجو استفاده از جستجوی لحظه ای می باشد, یعنی در حال تایپ یک عبارت همان لحظه در پایگاه داده جستجو می شود مثل گوگل و یا فیس بوک!
در این روش از PHP و آجاکس استفاده می شود,

قالب بندی HTML :
[HTMLS]
<html>
<head>
<script>
function showResult(str)
{
if (str.length==0)
{
document.getElementById(“livesearch”).innerHTML=”";
document.getElementById(“livesearch”).style.border=”0px”;
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
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>
</head>
<body>

<form>
<input type=”text” size=”30″ onkeyup=”showResult(this.value)”>
<div id=”livesearch”></div>
</form>
</body>
</html>
[/HTMLS]
حالا نیاز به یک فایل xml داریم که اطلاعات آن را بخوانیم,
links.xml
PHP:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<!– Edited by XMLSpy® –>
<pages>
<link>
<title>phptik</title>
<url>http://www.phptik.com/</url>
</link>
<link>
<title>Izadshahr</title>
<url>http://izadshahr.blogfa.com</url>
</link>
<link>
<title>textsms</title>
<url>http://www.textsms.ir</url>
</link>
</pages>
حالا یک فایل به نام livesearch.php می سازیم :
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=’_blank’>” .
$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>”;
}
}
}
}
}
 // Set output to “no suggestion” if no hint were found
// or to the correct values
if ($hint==”")
{
$response=”موردی یافت نشد”;
}
else
{
$response=$hint;
}
 echo $response;

منبع:
[h=1] جستجو آجاکس,آنی (مثل فیس بوک) [/h]
 

جدیدترین ارسال ها

بالا