Ik heb van w3schools het volgende script op mijn site: http://www.w3schools.com/php/php_ajax_livesearch.asp
Het werkt prima tot zover, maar is het ook mogelijk om maar bijvoorbeeld maximaal 10 resulaten weer te geven? Ik heb al een tijdje gezocht, maar niets gevonden. Ik heb weinig verstand van php/ajax.
Hopelijk kan iemand mij een hint/oplossing hiervoor geven.
- Ajax live search vraag
-
08-09-2010, 14:17 #1
- Berichten
- 576
- Lid sinds
- 18 Jaar
Ajax live search vraag
-
In de schijnwerper
-
08-09-2010, 14:37 #2
- Berichten
- 363
- Lid sinds
- 16 Jaar
Laat je code eens zien waarme je de zoekresultaten ophaalt.
Als je het op die manier doet, kan je een teller mee laten lopen, en als die teller 10 heeft bereikt, dan een break gebruiken om uit de foreach te stappen.Laatst aangepast door N. Kaag : 08-09-2010 om 14:44
-
08-09-2010, 15:17 #3
- Berichten
- 576
- Lid sinds
- 18 Jaar
Volgens mij is dat deze code. Eigenlijk precies gekopieerd van w3schools.
PHP Code:<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");
$x=$xmlDoc->getElementsByTagName('link');
//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('title');
$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='_self'>" .
$y->item(0)->childNodes->item(0)->nodeValue . "</a>";
}
else
{
$hint=$hint . "<br /><a href='" .
$z->item(0)->childNodes->item(0)->nodeValue .
"' target='_self'>" .
$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="Sorry, no live suggestions";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
-
09-09-2010, 09:01 #4
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Probeer dit:
for($i=0; $i<($x->length); $i++)
Eens te veranderen in:
for($i=0; $i<=10; $i++)
-
09-09-2010, 09:22 #5
- Berichten
- 363
- Lid sinds
- 16 Jaar
Niet getest:
<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");
$x=$xmlDoc->getElementsByTagName('link');
//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="";
$nrHints = 0;
$maxHints = 10;
for($i=0; $i<($x->length); $i++)
{
if ($nrHints >= $maxHints) {
break;
}
$y=$x->item($i)->getElementsByTagName('title');
$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='_self'>" .
$y->item(0)->childNodes->item(0)->nodeValue . "</a>";
}
else
{
$hint=$hint . "<br /><a href='" .
$z->item(0)->childNodes->item(0)->nodeValue .
"' target='_self'>" .
$y->item(0)->childNodes->item(0)->nodeValue . "</a>";
}
$nrHints++;
}
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint=="")
{
$response="Sorry, no live suggestions";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
-
09-09-2010, 16:24 #6
- Berichten
- 576
- Lid sinds
- 18 Jaar
-
09-09-2010, 16:28 #7
- Berichten
- 91
- Lid sinds
- 15 Jaar
Jij bedoelde dat hij er 11 liet zien ipv 10??
dit zal dan werken : for($i=0; $i<=9; $i++)
-
09-09-2010, 16:37 #8
- Berichten
- 576
- Lid sinds
- 18 Jaar
Bedankt, heb er idd ook al een 9 van gemaakt :)
-
09-09-2010, 16:58 #9
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Logisch ook, je begint vanaf 0, dat had ik even niet gezien, haha.
-
19-09-2010, 09:53 #10
- Berichten
- 576
- Lid sinds
- 18 Jaar
Een beetje laat, maar toch ontdek ik een foutje in het script.
Hij pakt nu alleen de eerste 10 resultaten die zijn opgeslagen ipv dat hij maximaal 10 resultaten laat zien. Dus alle resultaten vanaf plek 11 en verder, die zijn opgeslagen in een .xml bestand, worden niet weergegeven/doorzocht.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic