MyBB.de Forum
[AJAX] Mehrere Teile der Seite refreshen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: [AJAX] Mehrere Teile der Seite refreshen (/thread-10301.html)



[AJAX] Mehrere Teile der Seite refreshen - Zwoetzen - 09.08.2008

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)
PHP-Code:
// JavaScript Document
var 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()">
[...]
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 Smile

Danke für eure Hilfe xDDDD