Per AJAX geladene Seite aus DIV "ausbrechen"

dwex

Erfahrenes Mitglied
Hallo Leute,

stehe schon wieder vor einem Problem wo ich nicht weiterkommen.

Ich lade per AJAX eine PHP-Seite bzw. deren Ergebnis in ein DIV (nennen wir es id="hauptbereich"). Das funktioniert auch bestens.
Jedoch kann es mir passieren, dass meine Session ausgelaufen ist und das PHP-Script dann auf eine Login-Seite weiterleitet. Diese Loginseite wird jetzt in "hauptbereich" angezeigt.

Ich möchte jedoch, wenn die Loginseite wegen abgelaufener PHP-Session geladen wird diese nicht im DIV angezeigt wird sondern die bestehende Seite quasi "aufgelöst" wird und nur noch die Loginseite zu sehen ist.

Habs mit PHP header() und auch mit einem JavaScript Framesetbrecher-Code probiert - funktoniert leider beides nicht.

Hat jemand eine Idee?
Vielen Dank für eure Bemühungen im voraus!

PS: Sorry - lerne gerade JavaScript und AJAX
 
Hi,

mal sehen, was aus den wenigen Informationen zu machen ist.

Eventuell kannst du anhand einer Zeichenkette innerhalb der Anwort erkennen, ob es sich um das Login-Konstrukt handelt. In diesem Fall fügst du dieses als neuen Inhalt des body-Elements ein.

Die callback-Funktion onreadystatechange könnte zum Beispiel folgenden Inhalt besitzen:
Code:
// xhr enthält das XMLHttpRequest-Objekt
if((xhr.readyState==4) && (xhr.status==200)){
  if(xhr.responseText.search("Login:") != -1){
    document.getElementsByTagName("body")[0].innerHTML = xhr.responseText;
  }else{
    document.getElementById("hauptbereicht").innerHTML = xhr.responseText;
  }
}
Zur Funktion:
Es wird nach der Zeichenkette "Login:" gesucht. Wird diese gefunden, wird die Antwort in den Bodybereich eingefügt. Sonst wird das Element mit der ID hauptbereich aktualisiert.

Ciao
Quaese
 
Zurück