Zitat:
Zitat von kaepten
Das Eingabefenster ist so angelegt das es sich auf sich selbst bezieht... wenn also ein Wert übergeben wurde werden einfach die Formularfelder nicht mehr angezeigt. Statt dessen der Text.
Kann man hier jetzt ein sinnvolles Event finden das das Aktualisieren auslöst
|
Ich versuche es nochmal: Die Aktualisierung erfolgt über ein onLoad-Event im Body-Tag des Popup-Scripts. Durch die Hinterlegung des JavaScript-Codes in einer Variablen wird erreicht, dass das nur der Fall ist, wenn bestimmte Bedingungen erfüllt sind, also z. B. der Datenbankeintrag funktioniert hat.
Schematisch:
Code:
if(...POST_FORMULARDATEN)
{
... DATENBANKEINTRAG VORNEHMEN
$message = "<p class='z_riesig'>Der Datensatz wurde aktualisiert!</p>";
$aktualisieren = " onLoad = "opener.location.replace('xyz.php');"";
} else {
$message = "---HIER HTML-FORMULAR REIN---";
}
?>
<HTML>
<HEAD>
</HEAD>
<BODY<?PHP echo "$aktualisieren"; ?>>
<?PHP echo "$message"; ?>
</BODY>
</HTML>
Wird das Script zum ersten Mal aufgerufen, wird der Variablen $message der HTML-Code für das Eingabeformular zugewiesen, $aktualisieren bleibt undefiniert. Bei erfolgtem DB-Eintrag kommt der Code in den Body-Tag und bewirkt die Aktualisierung der Elternseite.
Natürlich lässt sich der HTML-Output auch komplett in die if-Bedingung einbauen, aber das bläht die Datei nur unnötig auf.
Ach ja: Durch die Verwendung von "replace" statt "reload" wird eine "echte" Aktualisierung erzwungen, sonst hat man in der Tat den F5-Effekt.