PHP, AJax -- Weiterleitung nicht Möglich

Godstyle

Erfahrenes Mitglied
Hallo,

Folgendes möchte ich realisieren:

Der User liest eine Nachricht die er gesendet bekam. Nun soll diese Mail gelöscht werden und der User anschliesend im Posteingang landen.

Domain aufbau:

http://***/mails/eingang/SYSTEM_1/

http://***/mails/eingang/ <--- Pfad wo der User hin soll nach dem löschen.

SYSTEM_1 <--- Absender_mail.id


den Befehl zum löschen gebe ich wie folgt:

HTML:
<a id="del" href="javascript:del_mail_in('<?php echo $mail; ?>')">löschen</a>

die function:

HTML:
function del_mail_in(str)
{
if (str.length==0)
  {
  return;
  }

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("del").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("GET","/pages/all/mails/del_mail.php?id="+str,true);
xmlhttp.send();
}

das empfangende php script ist nur testweise und löscht die daten mit absicht noch nicht:

PHP:
session_start();
ini_set('error_reporting', E_ALL);
echo 'test';
$_SESSION['mail_test_id'] = $_GET['id'];


header ('Location: http://***/mails/eingang/');

Der Fehler ist, das ich die headerfunktion nicht an dieser stelle ausführen darf. mit meta refresh habe ich es auch versucht und kam nicht zu einem ergebniss.

Das was das script macht ist, es ersetzt den link "löschen" gegen "test".

Somit weiß ich das die Daten in dem script auch ankommen.

Ich sehe das Problem darin, das ich mit dem Script nach dem löschen, den Pfad ungültig mache, den ich augerufen habe.

Ich hoffe mein Problem ist verständlich.

mfg


//EDIT//

Ok, schlagt mich, einfach das echo raus und es geht... ist doch logisch habs voll verpeilt...

So, aber was nun denoch falsch ist, er lädt die seite an diese steller erneut, wodurch ich eine doppelte seite habe. WIe kann ich denn die ausgangsseite neu laden?
Beim Login macht er das ja auch.
 
Zuletzt bearbeitet:
Hi

du schickt die Headerweiterleitung an den Ajax-Request
(der mit jQuery etc. übrigens deutlich einfacher wäre).

Wie wäre es, die Umleitung einfach in JS zu machen?
 
morgen sheel,

von jquery habe ich 0 ahnung.

Bin derzeit soweit das er sie richtig macht, habe im ajax script folgendes geändert:

HTML:
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.body.innerHTML=xmlhttp.responseText;
    }
  }

dadurch lädt er es im body neu, das problem ist das ich dann jedoch noch die alte url habe was bei einem f5 aufruf oder reload zu einem nicht vorhandenen eintrag führt.

und wenn ich an der stelle:


document.body.innerHTML=xmlhttp.responseText;

eine weiterleitung setze führt er das PHP script zum löschen des eintrages nicht mehr aus.
 
Joa, ich hab null Ahnung von JS kann aber nen bisschen jquery :D (Soll heißen: Guck es dir definitiv an, wenn man so nen bisschen programmiert reichen die Beispiele aus der Dokumentation meistens aus, um was auf die Reihe zu bringen)
 
Zurück