Kod ma za zadanie wczytywac na bierząco dane z bazy danych:
skrypt.js
window.onload = function() {
setTimeout("post();",1000);
}
function post() {
var xhr = createXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState==4) {
if (xhr.status==200) {
var odpowiedz = xhr.responseText;
$("results").innerHTML = odpowiedz;
} else {
alert("BŁĄD:"+xhr.status);
}
}
}
xhr.open("POST", "skrypt.php", true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send("param=1");
}
function createXMLHttpRequest() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("Brak obsługi XMLHttpRequest");
return null;
}
//To teoretycznie działa
Potem krutkie php:
function start(){
mysql_connect('localhost','qwe','haslo');
mysql_select_db('qwe');
$dane = mysql_fetch_assoc(mysql_query("SELECT * FROM test WHERE id = '1'"));
return $dane['test'];
}
echo start();
I co się dzieje: po określonym czasie funkcja php jest odpalana i z bazy danych wczytuje odpowiadnią wartość, więc wszytko teoretycznie ok.
Jednak teoretycznie funkcja miała odpalać się co 1000 milisekund przez co miała wychwytywać ewentualne zmiany w bazie danych ale nic takiego nie następuje.
Trzeba odświarzyć stronę żeby zmiany w bazie danych zostały wykryte. Co zrobić zeby na bierząco skrypt zmieniał zawartość strony w zależności od zawartości bazy danych?