Jump to content

PHP and AJAX live searches


s_ainley87

Recommended Posts

Hello everyone,

 

I have implemented a live search on my website and it is very effective, however some of the strings that can be type in start the same way i.e 'unlocking' i was wondering if there is a away for the results to be trimmed down to say showing the 3 closest matches?

 

This is my code (i presume it is done in the php as this is where the counting is done)

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

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

//get the q parameter from URL
$q=$_GET["q"];

//lookup all links from the xml file if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<($x->length); $i++)
{
$y=$x->item($i)->getElementsByTagName('name');
$z=$x->item($i)->getElementsByTagName('url');
if ($y->item(0)->nodeType==1)
  {
  //find a link matching the search text
  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="Special Order Please Contact Us Directly";
}
else
{
$response=$hint;
}

//output the response
echo $response;
?>

 

Thankyou in advance.

Link to comment
https://forums.phpfreaks.com/topic/97064-php-and-ajax-live-searches/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.