09.08.2008, 11:52
Hi alle zusammen,
bin gerade dabei, mich etwas mit Javascript und AJAX auseinander zusetzen, um meine Seite etwas dynamischer machen zu können. Momentan stehe ich vor folgendem Problem:
Ich habe es hinbekommen, dass sich ein Teil der Seite neu lädt (Hab mir das Übersichts-Plugin zu Rate gezogen ^^).
Aber wie bekomme ich jetzt hin, dass mehrere Teile der Seite neu geladen werden? Habe schon einiges versucht, aber irgendwie wird dann gar nix mehr refreshed...
Muss ich da jetzt für jeden neu-zu-ladenden Bereich ein eigenes createXMLHttpRequest machen? Oder kommt das bei dem einem mit rein? Oder ganz anders?
Würde mich über ein paar Tipps freuen.
MfG Zwoetzen
Mein aktueller Code: (Ist fast gleich wie im Übersichts-Plugin)
Sowie im Template:
Und die zu ändernden Bereiche haben natürlich ihre ID.
Okay, habe nach einer Weile nun im INet diese Seite gefunden, wo das ganze erklärt wird. So habe ich das jetzt gelöst.
Nachdem der IE noch ne Stunde rumgezickt hat, habe ich es jetzt so, wie ich es haben wollte
Danke für eure Hilfe xDDDD
bin gerade dabei, mich etwas mit Javascript und AJAX auseinander zusetzen, um meine Seite etwas dynamischer machen zu können. Momentan stehe ich vor folgendem Problem:
Ich habe es hinbekommen, dass sich ein Teil der Seite neu lädt (Hab mir das Übersichts-Plugin zu Rate gezogen ^^).
Aber wie bekomme ich jetzt hin, dass mehrere Teile der Seite neu geladen werden? Habe schon einiges versucht, aber irgendwie wird dann gar nix mehr refreshed...
Muss ich da jetzt für jeden neu-zu-ladenden Bereich ein eigenes createXMLHttpRequest machen? Oder kommt das bei dem einem mit rein? Oder ganz anders?
Würde mich über ein paar Tipps freuen.
MfG Zwoetzen
Mein aktueller Code: (Ist fast gleich wie im Übersichts-Plugin)
PHP-Code:
// JavaScript Document
var j = 1; // Irgendwas, was sich noch ändert, um das Refreshen direkt sehen zu können
// Request erstellen
function createXMLHttpRequest() {
var ab = false;
// IE 7, Mozilla, Opera, Safari
if (typeof(XMLHttpRequest) != 'undefined') {
ab = new XMLHttpRequest();
}
if (!ab) {
// IE 6 und älter
try {
ab = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
ab = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
ab = false;
}
}
}
return ab;
}
// Antwort verarbeiten
function handleResponse() {
if(req.readyState == 4){
if (req.status == 200) {
var response = req.responseText;
document.getElementById('newslist').innerHTML = response + j;
j++;
}
}
}
// Daten laden und ausgeben
function refresh_page() {
req.open('GET', 'index.php?content=newslist');
// 'index.php?content=newslist' liefert die Tabelle mit den News zurück
// Damit bekomme ich auch die Tabellen der anderen Bereiche, die refreshed werden sollen
req.onreadystatechange = handleResponse;
req.send(null);
}
Sowie im Template:
Code:
[...]
<script type="text/javascript" src="refresh.js"></script>
<script language="JavaScript" type="text/javascript">
var req = createXMLHttpRequest();
setInterval('refresh_page()', 1000);
</script>
[...]
<body onload="refresh_page()">
[...]
Okay, habe nach einer Weile nun im INet diese Seite gefunden, wo das ganze erklärt wird. So habe ich das jetzt gelöst.
Nachdem der IE noch ne Stunde rumgezickt hat, habe ich es jetzt so, wie ich es haben wollte
Danke für eure Hilfe xDDDD