Realtime dingen uit mysql halen via php

Status
Niet open voor verdere reacties.
Waarom doe je het zo moeilijk?
Goede vraag, en nu nog beter, waarom een 30kb Javascript file ophalen en uitvoeren als je maar 10 regels code nodig hebt? Also, kenikavanbis script is vreselijk... browser detection?!

Anyway, hier is het plan:
HTML:
<div id='output'>loading...</div>
[js]var xhttp = (XMLHttpRequest) ? new XMLHttpRequest : (ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : null;

if(xhttp != null)
{
setInterval(function()
{
xhttp.open('get', 'data.php', true);
xhttp.onreadystatechange = function()
{
if(xhttp.readyState == 4 && xhttp.status == 200)
{
document.getElementById('output').innerHTML = xhttp.responseText;
}
};
xhttp.send(null);
}, 1000); // elke seconde
}[/js](even uit het hoofd, maar zou moeten werken)
 
De reden dat mensen JQuery of browserdetectie gebruiken is omdat jouw script in theorie wel werkt maar in de praktijk waarschijnlijk in de helft van de browsers niks doet.

Er zijn speciale libraries die dit soort functies wrappen zodat ze in alle browsers werken voor een reden ;)
 
Onzin. In de praktijk werkt het mooi wel op alle browsers (hey, zelfs in IE...)! Zie de testpagina. Voor de lol eventjes een seconde-teller erbij gezet, plus HTML code in het txt file.

getest (werkend) in IE8, FF4, Safari 5, en Opera 11. Werkt ook op de Android browser en Opera mobile (10.nogiets) op mn HTC Hero.




Maargoed, dit is niet echt de plek om mn afkeur van jsLibs te discusieren ;)
[edit]oh, trouwens, met 'browserdetection' bedoelde ik het 'useragent.indexOf' gedoe - sinds een jaar of 6 is het gebruikelijk om aan feature detection te doen...[/edit]
 
Laatst bewerkt:
IE6? Alle grote en goede sites op alle gebieden gebruiken Javascript-libraries, dat is niet voor niks.
 
Tsja, IE6 wil nogsteeds niet dood. Ook al zijn we ondertussen al 3 versies verder. Maargoed, voor de lol eens op mn oude armada 1750 eens IE6 gestart met de testpagina... en: je hebt gelijk, het werkt niet. Echter, met 2 keer 6 extra letters wel. De 1e regel wordt dit:

[js]var xhttp = (window.XMLHttpRequest) ? new XMLHttpRequest : (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : null;[/js]

en nu werkt het ook in IE6.
 
Laatst bewerkt:
data.php doet dat ook. dit staat er in:
PHP:
<?
mysql_connect ('localhost','user','pass' ); 
mysql_select_db ('db' ); 


$query = "SELECT message,id FROM smsberichtenbalk ORDER BY id DESC LIMIT 5"; 
$uitvoer = mysql_query($query) or die (mysql_error()); 
while($lijst = mysql_fetch_object($uitvoer)) 
{ 
/*WEERGAVE VAN ELK ITEM IN DE LIJST*/ 


echo "<div>$lijst->message</div>"; 
} 

?>
Maar die div tags komen niet door..

Is er misschien nog een antwoord op deze vraag?
 
Je kan eens het resultaat alert()'en in plaats van gelijk in je pagina te gooien. Eg.
[js]
if(xhttp.readyState == 4 && xhttp.status == 200)
{
alert(xhttp.responseText);
//document.getElementById('output').innerHTML = xhttp.responseText;
}
[/js]
als je de div's dan nog niet ziet is er a) een caching probleem of b) een php probleem.
 
Je kan eens het resultaat alert()'en in plaats van gelijk in je pagina te gooien. Eg.
[js]
if(xhttp.readyState == 4 && xhttp.status == 200)
{
alert(xhttp.responseText);
//document.getElementById('output').innerHTML = xhttp.responseText;
}
[/js]
als je de div's dan nog niet ziet is er a) een caching probleem of b) een php probleem.

Bedankt, maar hoe moet ik die code dan combineren met die jquery?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan