izadshahri
Member
یکی از روش های جدید در جستجو استفاده از جستجوی لحظه ای می باشد, یعنی در حال تایپ یک عبارت همان لحظه در پایگاه داده جستجو می شود مثل گوگل و یا فیس بوک!
در این روش از PHP و آجاکس استفاده می شود,
قالب بندی HTML :
[HTMLS]
حالا نیاز به یک فایل xml داریم که اطلاعات آن را بخوانیم,
links.xml
حالا یک فایل به نام livesearch.php می سازیم :
منبع:
[h=1] جستجو آجاکس,آنی (مثل فیس بوک) [/h]
در این روش از 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] <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>
حالا نیاز به یک فایل 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>
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]