Opener reloaden
Osiris
- javascript
Hallo.
Ich weiß, dass eine ähnliche Frage hier schon öfter gestellt worden ist, habe aber keine für mich zutreffende Antwort gefunden.
Die Situation:
Ich benutze eine php-generierte Seite mit Formular.
Das Formular hat die Eigenschaften target="_blank" aktion="irgendwas.php" und method="post".
Das Ziel:
"irgendwas.php" soll sich nach ausführen des Scriptes selbstständig schließen und das Ursprungsfenster aktualisieren.
Mein Ansatz:
Datei: "irgendwas.php"
<?php
tu_was();
echo "<script language="JavaScript" type="text/javascript">\n
opener.location.reload(); \n
window.close(); \n
</script> \n";
?>
Das Problem: Das Pop-up wird zwar geschlossen, der opener wird aber nicht aktualisiert.
Was mache ich falsch?
Liegt es am Aufruf über <form>?
Ich danke euch für etwaige Hilfe.
mfg,
Marc
opener.location.reload(); \n
window.close(); \n
Vielleicht passiert das ganze zu schnell, d.h. er braucht vielleicht eine Weile zu lang, um den opener zu aktualisieren, in der Zwischenzeit wird das Fenster geschlossen.
Probier doch mal ein window.setTimeout('window.close()',10000); (10000 Millisekunden) und schau, was passiert.
Oder: Er lädt die Seite aus dem Browser-Cache, dann probier doch mal opener.location.reload(true);
Viel Glück!
elvirus
Vielleicht passiert das ganze zu schnell, d.h. er braucht vielleicht eine Weile zu lang, um den opener zu aktualisieren, in der Zwischenzeit wird das Fenster geschlossen.
Daran habe ich auch schon gedacht, und die close()-methode mal weggelassen.
Probier doch mal ein window.setTimeout('window.close()',10000); (10000 Millisekunden) und schau, was passiert.
Trotzdem Danke!
Aber ich glaube, norberts Variante gefällt mir besser!
Hallo Marc,
irgendwie versteht man den Sinn Deiner Aktion nicht:
1. es existiert eine FormularSeite 'formpage.php'
2. selbige zeigt nach "_blank" und 'irgendwas.php'
3. soll in 'irgendwas.php' ein JS das Fenster schliessen
4. muss das Ausgangsfenster aktualisiert werden
Frage 1:
Wozu dieses neue Fenster, welcher Sinn steckt dahinter, wo es doch sofort wieder geschlossen wird?
Frage 2:
Warum schreibst Du nicht im Formularscript eine kleine Verzweigung mit PHP und laesst dort etwas abarbeiten, falls etwas eingegeben wurde. Ganz einfach, ganz simpel und ohne JavaScript.
Gruss Norbert
Danke für die schnelle Antwort.
- es existiert eine FormularSeite 'formpage.php'
richtig, so kann man das sehen.
- selbige zeigt nach "_blank" und 'irgendwas.php'
korrrekt
- soll in 'irgendwas.php' ein JS das Fenster schliessen
ok, es muss ja nicht unbedingt ein JS sein. Aber ich weiß nicht, ob es mit einem meta-tag machbar wäre?!
- muss das Ausgangsfenster aktualisiert werden
unbedingt, sonst stehen die alten Werte noch in dem Formular!
Frage 1:
Wozu dieses neue Fenster, welcher Sinn steckt dahinter, wo es doch sofort wieder geschlossen wird?
Antwort siehe Frage 2
Frage 2:
Warum schreibst Du nicht im Formularscript eine kleine Verzweigung mit PHP und laesst dort etwas abarbeiten, falls etwas eingegeben wurde.
Also: Wenn ich das als POST machen will (wie ich ja gesagt habe), denn als GET habe ich noch gleichzeitig weitere Queries, die nur als Parameter für die Erzeugung der Seite dienen, dann kann der Benutzer, wenn er die Seite neu lädt, den gleichen Sermon per "Wiederholen" noch einmal und immer wieder in meine Datenbank spammen.
Gut, ok, eine Möglichkeit sähe ich da doch. Sag mir einfach nochmal, ob es das ist, was dir vorschwebte:
<?php
if(isset($_POST) and $_POST['aktion']="blubb")
{
tu_was();
echo "<meta http-equiv="refresh" content="0; URL=".$_POST['letzte_seite'].""> \n";
}
zeige_rest_von_seite();
?>
Vielen Dank für die Anregung, gefällt mir sogar ganz gut!
mfg,
Marc