Hallo Leute,
bin ganz neu hier, habe leider ein Problem bei einem aus Javascript, PHP und HTML bestehenden Programm. Also:
Grundsätzlich : Es handelt sich um einen Kalendar. Auf der Seite index.php werden alle Daten (Datum, Titel, Beschreibung) eingetragen. Diese Daten werden dann an die Datei Transform.php weitergeleitet, die die Daten in das richtige Format bringt und dann abspeichert. WENN allerdings ein Fehler mit den Daten aufgetreten ist, dann soll die Transform.php den vorherigen Eingabebildschirm wiederherstellen, die fehlerhaften Eingabefelder rot markieren und die aufgetretenen Fehler ausgeben.
Da die Daten, die der User beim ersten Mal aufwendig eingegeben hat (z.B. eine lange Beschreibung des Termins) nicht verloren gehen sollen, hab ich mich bis jetzt für die "history.back()" Methode von Javascript entschieden. Dummerweise muss ich allerdings direkt nachdem die index.htm durch back() wieder geladen wurde aktualisieren, damit die Fehler (die ja er st durch transform.php erkannt wurden) richtig angezeigt werden.
Und genau das ist mein PRoblem : Das ist an sich alles programmiert, klappt auch super, nur aktualisiert er einfach nicht automatisch!!! Wenn ich (nachdem transform.php mich also an index.php zurückverwiesen hab) F5 drücke, dann aktualisiert er ohne Probleme (d.h. die Fehler werden ordentlich markiert UND die alten eingegebenen Daten sind noch da).
Ich suche jetzt also ne Möglichkeit, diese index.php zu aktualisieren, ohne dass ich F5 drücken muss. Habs schon mit location.reload() im "zurück" link der transform.php versucht, ebenso mit einem location.reload() in der index.php selbst (-> endlosschleife, daher mit einer variable getriggered, funzt aber auch nicht). Hab auch schonmal im head der index.php die Zeilen
eingefügt, aber auch das bringt garnix! Es sieht einfach so aus, als würde das history.back() einfach die Seite, die schonmal da war so wieder anzeigen wie sie auch damals war, und sich garnicht um den Code (sowie dort enthaltene reload() anweiseungen) kümmern.
Im Moment sieht das daher in etwa so aus:
transform.php
index.php, in diesem Falle mit der getriggerten variable und der location.reload() funktion.
Geht also um die Frage, wie ich nachdem ich einmal zurück in der history gesprungen bin diese seite direkt neu laden kann. Hoffe ihr könnt mir helfen.
Vielen Dank schonmal!
Philipp
bin ganz neu hier, habe leider ein Problem bei einem aus Javascript, PHP und HTML bestehenden Programm. Also:
Grundsätzlich : Es handelt sich um einen Kalendar. Auf der Seite index.php werden alle Daten (Datum, Titel, Beschreibung) eingetragen. Diese Daten werden dann an die Datei Transform.php weitergeleitet, die die Daten in das richtige Format bringt und dann abspeichert. WENN allerdings ein Fehler mit den Daten aufgetreten ist, dann soll die Transform.php den vorherigen Eingabebildschirm wiederherstellen, die fehlerhaften Eingabefelder rot markieren und die aufgetretenen Fehler ausgeben.
Da die Daten, die der User beim ersten Mal aufwendig eingegeben hat (z.B. eine lange Beschreibung des Termins) nicht verloren gehen sollen, hab ich mich bis jetzt für die "history.back()" Methode von Javascript entschieden. Dummerweise muss ich allerdings direkt nachdem die index.htm durch back() wieder geladen wurde aktualisieren, damit die Fehler (die ja er st durch transform.php erkannt wurden) richtig angezeigt werden.
Und genau das ist mein PRoblem : Das ist an sich alles programmiert, klappt auch super, nur aktualisiert er einfach nicht automatisch!!! Wenn ich (nachdem transform.php mich also an index.php zurückverwiesen hab) F5 drücke, dann aktualisiert er ohne Probleme (d.h. die Fehler werden ordentlich markiert UND die alten eingegebenen Daten sind noch da).
Ich suche jetzt also ne Möglichkeit, diese index.php zu aktualisieren, ohne dass ich F5 drücken muss. Habs schon mit location.reload() im "zurück" link der transform.php versucht, ebenso mit einem location.reload() in der index.php selbst (-> endlosschleife, daher mit einer variable getriggered, funzt aber auch nicht). Hab auch schonmal im head der index.php die Zeilen
Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache">
Im Moment sieht das daher in etwa so aus:
transform.php
Code:
// Starten der session
//...
if($_SESSION["error"]=="")
{
//Eintragen des eintrags
}
else
{
$_SESSION["UpdateIndexWindow"]=true;
$message= "Ein Fehler ist..." // hier gehts normal weiter
$message .= "<a class=\"psf\" href=\"javascript:history.back()\"><< zurück</a>";
// Noch bissel mehr...
}
index.php, in diesem Falle mit der getriggerten variable und der location.reload() funktion.
Code:
ob_start();
session_start();
ob_end_clean();
// ...
if($_SESSION["UpdateIndexWindow"])
{
echo "<script type=\"text/javascript\">
alert(\"reloading... \");
location.reload();
</script>";
$_SESSION["UpdateIndexWindow"]=false;
}
?>
Geht also um die Frage, wie ich nachdem ich einmal zurück in der history gesprungen bin diese seite direkt neu laden kann. Hoffe ihr könnt mir helfen.
Vielen Dank schonmal!
Philipp