login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ajax live search probleem (Opgelost)

Offline kickasgamer - 12/10/2009 14:47
Avatar van kickasgamerPHP ver gevorderde ik heb een ajax live search in elkaar gestoken aan de hand van het voorbeeld hier (http://www.w3schools.com/php/php_ajax_livesearch.asp)

maar als ik nu mijn pagina zoeken.php open en een gebruikersnaam invul dan krijg ik helemaal geen suggesties te zien ondanks dat er wel gebruikers met die gebruikersnaam bestaan

search.js: Plaatscode: 137800
searchresult.php: Plaatscode: 137801
zoeken.php: Plaatscode: 137802

ik hoop dat iemand mij kan helpen want ik kan niet zeggen waar de fout zit 

4 antwoorden

Gesponsorde links
Offline Stijn - 12/10/2009 15:16
Avatar van Stijn PHP expert Het zou aan je query kunnen liggen, die is namelijk niet correct. Je mag niet '=' gebruiken maar je moet LIKE gebruiken.

  1. $query ="SELECT * FROM ls_leden WHERE naam LIKE '%".$q."%'";


Als je nog een fout zou hebben, probeer eens te debuggen met de extensie FireBug voor Firefox. Die plugin vertelt je alles over de Ajax request en fouten in je javascript.
Offline kickasgamer - 12/10/2009 15:21
Avatar van kickasgamer PHP ver gevorderde ok, het lag dus ook deels aan mijn query maar nu heb ik even dan rechtstreeks in searchresult.php getest en als ik daar voor q=tes invul (want er zijn namelijk 10 gebruikers met de naam test_[een nummer])

als ik dan het script laat zoeken krijg ik maar 1 waarde terug aan wat kan dat liggen dan 

Maar als ik in het bestand zoeken.php dan tes typ dan krijg ik helemaal geen resultaten te zien in mijn result div

Over die firebug deze heb al geïnstalleerd maar hoe kan ik dan juist zien als er iets fout loopt bij mijn ajax ?

alvast bedankt
Offline Stijn - 12/10/2009 15:31
Avatar van Stijn PHP expert Als je op je site staat en rechtsonder op je Firebug icoon klikt, moet je enkele opties aan zetten en dan eens je pagina refreshen. Doe je ajax request en kijk in firebug naar het resultaat.

Je doorloopt al je gebruikersnamen maar overschrijft telkens de vorige met de huidige username in $response. Je moet de resultaten concateneren.

  1. $response .= $arr['naam'];


Ik vraag me ook af waarom je * gebruik in je query terwijl je maar één kolomnaam gebruikt.
Offline kickasgamer - 12/10/2009 15:55 (laatste wijziging 12/10/2009 17:55)
Avatar van kickasgamer PHP ver gevorderde ja die $response was wel echt een domme fout van mijn kant maar het werkt nu met meerdere namen, die * had ik gezet omdat dit nu enkel de basis is en ik nu alleen de gebruikersnaam wilde laten zien maar als de live search werkt heb ik ook het id en nog wat gegevens nodig

maar hoe ik juist in firebug mijn hele request kan checken snap ik niet helemaal ik heb nu dit scherm ( http://img384.i...032259.jpg )

EDIT: ik heb toch iet wat gevonden hoe het checken met firebug werkt, als ik in het NET tabblad kijk en dan een stukje gebruikersnaam intik in het tekstveld dan wordt de url (searchresult.php?q=[tekst]) goed doorgestuurd dus volgens mij zit de fout in het doorgeven van de waarde $response van de php file naar zoeken.php (de div livesearch)

EDIT2: ik ben nog wat verder gaan zoeken met firebug en hieruit blijkt dat ik het antwoord van mijn script (searchresult.php) wel degelijk krijg maar het wordt nog steeds niet getoond in de div

EDIT3: ik heb uiteindelijk toch gevonden wat er fout was, namelijk de waardes die uit de db gehaalt werden zouden met de algemene waarde xmlHttp worden overgezet maar in mijn code stond xmlhttp dus het zat in een klein hoekje toch bedankt voor het mee denken stijn


Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.181s