login  Naam:   Wachtwoord: 
Registreer je!
 Forum

jscript var met php moet refreshen (Opgelost)

Offline Martijn - 07/06/2008 15:45 (laatste wijziging 07/06/2008 15:55)
Avatar van MartijnCrew PHP ik denk dat de code voldoende uitlegt wat de bedoeling is; ik wil dat elke 5sec mn <span id='messages'> word update.

  1. var berichtInfo = "<?php include"dinges/msgupdate.php";?>";
  2.  
  3. function berichtRefresh() {berichtInfo = "<?php include"dinges/msgupdate.php";?>"; }
  4.  
  5. function msgCheck(){
  6. window.setTimeout(berichtRefresh, 2500);
  7. window.setTimeout(msgCheck, 5000);
  8. document.getElementById("messages").innerHTML = berichtInfo;
  9.  
  10. }


Er staat in msgupdate.php -> '<?php echo time(); ?>', maar het word een simpele query de database in.

De span vernieuwd wel elke 5 sec, maar de waarde dus niet. Ik heb net een hele zooi info over xml gelezen op w3c, in de hoop dat dat het was, maar ik zie niet hoe ik het moet toepassen.

Het zal vast iets ajax zijn enzo, maar gezien het feit dat ik nieuw ben met javascript, en nog niet eens begonnen met xml, gaat me dat niet (netjes) lukken.

wie o wie heeft er een voorbeeld of oplossing voor me?

4 antwoorden

Gesponsorde links
Offline Grayen - 07/06/2008 16:19
Avatar van Grayen PHP ver gevorderde De enige manier om dat wat je wilt voor elkaar te krijgen is inderdaad met ajax. Je zal dus wat tutorials moeten gaan bekijken, zoals bijvoorbeeld die van hier op sima:

http://www.site...ive_search
Offline Martijn - 07/06/2008 17:15 (laatste wijziging 07/06/2008 17:43)
Avatar van Martijn Crew PHP dit hoeft denk nog net niet op plaatscode:
  1. var http = createRequestObject();
  2.  
  3. /*
  4. * de sendRequest functie: we maken een script aan en in de header wordt het argument meegegeven
  5. * als de pagina 'klaar is' moet er een bepaalde functie uitgevoerd worden: 'handleResponseTest'
  6. * vervolgens 'sluiten' we deze pagina
  7. */
  8. function sendRequestTest() {
  9.  
  10. http.open('get', 'msgupdate.php');
  11. http.onreadystatechange = handleResponseTest;
  12. http.send(null);
  13.  
  14. }
  15.  
  16. /*
  17. * de handleResponse functie: deze zal kijken of de pagina daadwerkelijk 'klaar is'
  18. * als dit zo is, EN er is output, dan zal deze ge-alert worden
  19. */
  20. function handleResponseTest() {
  21.  
  22. /*
  23. * http.readyState heeft vijf verschillende mogelijke waarden: 0 = niet geset, 1 = aan het laden, 2 = geladen,
  24. 3 = actief, 4 = afgehandeld (de situatie die we willen)
  25. * http.status heeft er velen, een bekender voorbeeld is 404 (page not found). 200 betekend dat de pagina 'OK' is
  26. */
  27.  
  28. if(http.readyState == 4 && http.status == 200){
  29. if(http.responseText) {document.getElementById("messages").innerHTML = http.responseText;}
  30. else{document.getElementById("messages").innerHTML = " tekst ";}
  31. }
  32. else{document.getElementById("messages").innerHTML = " statusfout ";}
  33.  
  34. }
  35.  
  36. ////////////////////////// einde AJAX dingy
  37.  
  38. function msgCheck(){
  39. window.setTimeout( sendRequestTest, 5000);
  40.  
  41. }


ik eh, snap er net niet genoeg van ik snap wel zo ongeveer wat er gebeurd, maar niet hoe ik het op mn site laat zien in mn span?

edit:
Beetje aangepast, er komt te staat 'statusfout'...?
Offline Grayen - 07/06/2008 17:46
Avatar van Grayen PHP ver gevorderde Ja, je moet msgCheck() aan de onload event koppelen. Maar je maakt een fout:

setTimeout != setInterval

http://javascript.about.com/library/blstvsi.htm

Jij zou setInterval moeten gebruiken, aangezien je elke 5 seconden wilt aanroepen en niet eenmalig na 5 seconden.
Offline Martijn - 08/06/2008 11:48
Avatar van Martijn Crew PHP bedankt. Dat was niet het probleem, ik zag het net opeens. Maar de interval is wel fijn ja, bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s