login  Naam:   Wachtwoord: 
Registreer je!
 Forum

setTimeout probleem

Offline GatekeeperCruelman - 06/03/2009 12:04 (laatste wijziging 06/03/2009 12:05)
Avatar van GatekeeperCruelmanNieuw lid Hallo allemaal,
Ik ben sinds een paar dagen bezig met een beetje javascript.
Ik probeer een timeout op het activeren van mijn script te zetten.

  1. <script src="script.js"></script>
  2. <tr>
  3. <form><td><input type="text" onkeyup="setTimeout(showSites(this.value), 10000)" /></td></form>
  4. <form method="post" action="show.php">
  5. <td><select name="cbo" id="cbo"><?include 'getsites.php';?></select></td>
  6. <td><input type="submit" value="Show" />

Hier worden de resultaten meteen zichtbaar zonder dat hij wacht.

  1. <script src="script.js"></script>
  2. <tr>
  3. <form><td><input type="text" onkeyup="setTimeout('showSites(this.value)', 10000)" /></td></form>
  4. <form method="post" action="show.php">
  5. <td><select name="cbo" id="cbo"><?include 'getsites.php';?></select></td>
  6. <td><input type="submit" value="Show" />

Wacht hij wel maar voert hij de taak niet uit.

script.js:
  1. var xmlHttp
  2. function showSites(str)
  3. {
  4. xmlHttp=GetXmlHttpObject();
  5. if (xmlHttp==null)
  6. {
  7. alert ("Your browser does not support AJAX!");
  8. return;
  9. }
  10. var url="getsites.php";
  11. url=url+"?q="+str;
  12. url=url+"&sid="+Math.random();
  13. xmlHttp.onreadystatechange=stateChanged;
  14. xmlHttp.open("GET",url,true);
  15. xmlHttp.send(null);
  16. }
  17. function GetXmlHttpObject()
  18. {
  19. var xmlHttp=null;
  20. try
  21. {
  22. // Firefox, Opera 8.0+, Safari
  23. xmlHttp=new XMLHttpRequest();
  24. }
  25. catch (e)
  26. {
  27. // Internet Explorer
  28. try
  29. {
  30. xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  31. }
  32. catch (e)
  33. {
  34. xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  35. }
  36. }
  37. return xmlHttp;
  38. }
  39. function stateChanged()
  40. {
  41. if (xmlHttp.readyState==4)
  42. {
  43. document.getElementById("cbo").innerHTML=xmlHttp.responseText;
  44. }
  45. }


Ik hoop dat iemand mij hier mee kan helpen.
Alvast bedankt,
GatekeeperCruelman

3 antwoorden

Gesponsorde links
Offline Richard - 06/03/2009 13:26
Avatar van Richard Crew algemeen this.value is leuk, maar vergeet niet dat de code die je als argument meegeeft in de globale scope is. ;)

  1. onkeyup="setTimeout('showSites(\''+ this.value.replace(/(\\|')/g, '\\$1')+'\'), 10000)"


Zoiets... Ongeveer!
Offline PRO - 06/03/2009 14:22
Avatar van PRO JS interesse
  1. var timer = setTimeout(function() { hier je funktie aanroepen },1000);
Offline GatekeeperCruelman - 06/03/2009 15:44
Avatar van GatekeeperCruelman Nieuw lid Bedankt voor de uitleg.
Ik heb het als volgt opgelost:
phpcode:
  1. <script src="script.js"></script>
  2. <tr>
  3. <form><td><input type="text" onkeydown="getVar(this.value)" onkeyup="setTimeout('showSites(tExt)', 10000)" /></td></form>
  4. <form method="post" action="show.php">
  5. <td><select name="cbo" id="cbo"><?include 'getsites.php';?></select></td>
  6. <td><input type="submit" value="Show" />


script.js:
  1. var xmlHttp
  2. function showSites(str)
  3. {
  4. xmlHttp=GetXmlHttpObject();
  5. if (xmlHttp==null)
  6. {
  7. alert ("Your browser does not support AJAX!");
  8. return;
  9. }
  10. var url="getsites.php";
  11. url=url+"?q="+str;
  12. url=url+"&sid="+Math.random();
  13. xmlHttp.onreadystatechange=stateChanged;
  14. xmlHttp.open("GET",url,true);
  15. xmlHttp.send(null);
  16. }
  17. function GetXmlHttpObject()
  18. {
  19. var xmlHttp=null;
  20. try
  21. {
  22. // Firefox, Opera 8.0+, Safari
  23. xmlHttp=new XMLHttpRequest();
  24. }
  25. catch (e)
  26. {
  27. // Internet Explorer
  28. try
  29. {
  30. xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  31. }
  32. catch (e)
  33. {
  34. xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  35. }
  36. }
  37. return xmlHttp;
  38. }
  39. function stateChanged()
  40. {
  41. if (xmlHttp.readyState==4)
  42. {
  43. document.getElementById("cbo").innerHTML=xmlHttp.responseText;
  44. }
  45. }
  46. var tExt
  47. function getVar(vAr)
  48. {
  49. tExt=vAr;
  50. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.57s