s_ainley87 Posted March 20, 2008 Share Posted March 20, 2008 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.