Popup Reload der parent seite

hallo oliver,

ja klar … hatte übersehen, dass du ja den
target im form-tag hast :smile:)
also bringt das nichts mit der ausgabe von html&js.

dann bleibt der iframe-inhalt nach dem post-request bestehen. also müsste der settimeout im iframe auch laufen.

da hast du dir ja ne verschachtelte kiste gebaut :smile:)

gruß
klaus

Hi Klaus,
tja, wenns einfach wäre hätte ich nicht gefragt und Du hättest Langeweile. :wink:)

Gruß
Oliver

hallo oliver,

ich haben deinen „konstrukt“ ja nicht nachgebaut, aber das müsste eigentlich reichen:

function ende(){
window.setTimeout( ‚parent.location.href=„ende.php“‘, 2000 );
}

</sript>

Ein fettes Dankeschön nochmal!!!

gern geschehen !!

gruß
klaus

Wie gesagt, andere Blocker riegeln vielleicht komplett ab, aber wenn deine Zieluser klar
umschrieben sind und du unbedingt popuppen willst, ok. Ich wollte nur sagen, dass das nicht
Standard ist. Viele Programmierer kommen von Windows VB Applikationen her (oder sowas)
und dort sind Popups normal.

Du kannst im onload der Seite1 setInterval aufrufen. Damit setzt du einen Timer, der z.B.
jede Sekunde schaut, ob ein Refresh nötig ist, indem er eine Variable testet. Oder ob das
Fenster noch da ist.

Was geht denn mit opener nicht? Leer? Probier erst mal ohne das mootools Framework.
Wenn alles läuft, kannst du das immer noch einbauen.

Wenn du dann immer noch nicht weiter kommst, frage nochmal mit funktionierendem, zu
verbesserndem Code (ohne php, ohne mootools, ohne Styles, usw) - also mit allem wie du’s
willst, nur ohne funktionierenden Refresh.

Hi,

ich habe es nun lösen können. Und zwar mit:

function ende(){
window.setTimeout( ‚parent.location.href=„ende.php“‘, 2000 );
}

</sript>

Der Clou/Haken:
Das „Popup“ ist in Wirklichkeit ein manipulierter mootools-iframe. Daher hats den popupblocker „ausgetrixt“. So ist alles gut. Danke für deine Hilfe / Mühe /Ansätze!
Lieben Gruß
Oliver

Ein normaler Browser reload schließt das fenster und
aktualisiert die Anzeige wie gewünscht.
Wie bekomme ich das Ganze automatisiert?

Wäre es nicht besser, das Hauptfenster in dem Popup als Form-Target zu verwenden, damit dann gleich die neuen DB-Werte darin stehen (natürlich muss dann auch noch die pdf_generieren.php durch deine hauptdatei ersetzt werden und der Empfangsteil im PHP auch darein) dann hätte man ein Problem weniger. Und dann brauchst du zusätzlich gar nicht mehr mit Timeouts arbeiten, da ja das Hauptfenster aufgerufen wird, welches das PopUp schließen sollte. Ich stelle mir den Form Teil etwa so vor:

Hi,

danke für Deine Antwort! Habe es mittlerweile gelöst bekommen:

function ende()
{
setTimeout( „window.location.href = parent.location.href=‚test.php‘;“, 2*1000 );

}

Der Haken war, dass es sich um ein manipulierten Iframe handelte. Damit wird es vom Popupblocker auch nicht entdeckt. Aber auch der opener funktioniert nicht. Mit parent gehts.
Gruß
tsunami

Der Haken war, dass es sich um ein manipulierten Iframe
handelte. Damit wird es vom Popupblocker auch nicht entdeckt.
Aber auch der opener funktioniert nicht. Mit parent gehts.

Fragt sich nur, ob das auch so sauber ist. Aber machs wie du es meinst. Über Traffic sollte man wirklich nur bei hochfrequenten Seiten gedanken machen, eher ist es unsauber, dass der Benutzer zwei Sekunden warten muss, obwohl es auch sofort ginge. Hast du außerdem mal darüber nachgedacht was ist, wenn man mit einem JS-freien Browser (selbst ich verwende manchmal Textbrowser, die bekanntlich ohne JS daherkommen) unterwegs ist? :wink:

Hi,

das warten muss sein. Denn bei dem generierten pdf wird vorher noch ein DB-Update gemacht. Und das dauert ca. 2 Sekunden. Und die aktualisierte Seite (von der ich das pdf generiert habe) soll angezeigt werden, damit der user das bereits generiert pdf nicht noch einmal generieren kann.
Also:
seite.php-> klick iframe auf-> speichern oder drucken
-> form abschicken -> db aktualisieren (pdf_istgeneriert auf 1 setzten) -> seite.php aktualisiert anzeigen (reload) Und lynx etc. setzten nur absolute freaks ein. Keiner nutzt einen Textbrowser und will dann ein pdf generiern, welches er nicht sehen kann. :wink:
Wäre wie ein Blinder im Kino. :wink:

das warten muss sein.

Nein! :wink:

seite.php-> klick iframe auf-> speichern oder drucken
-> form abschicken -> db aktualisieren (pdf_istgeneriert auf 1
setzten) -> seite.php aktualisiert anzeigen (reload)

Die PHP aktualisiert die Datenbank. Und das mag ja zwei Sekunden dauern, aber wenn du dann schon das PDF einfach mit dem PHP AUSGIBST, dann ist die Wartezeit im Laden des Dokuments inbegriffen. Oder womit erstellst du das PDF? Erstellst du es Asyncron, dann gibt es tatsächlich nur die Möglichkeit mit dem Warten, aber selbst dafür brauchst du die Seite nicht neuladen, es reicht ein simples sleep. PHP kann aber auch SOFORT PDF Generieren, dann würde sowieso alles mit der Datenbank und so entfallen, bzw. müsste das Flag nicht mehr abgerufen werden. Schau dir mal die FPDF-PHP Library (läuft auf jedem Webserver) an, damit habe ich gute erfahrungen gemacht und sie ist frei.

Keiner nutzt einen
Textbrowser und will dann ein pdf generiern, welches er nicht
sehen kann. :wink:

War ja nur ein Beispiel, wer weiß wie viele überhaupt Javascript ausgeschaltet haben, aber stimmt schon, im Grunde genommen kann man das vernachlässigen.

Hi,
sobald das pdf geneirert ist, soll in der DB ein Flag „generiert“ auf 1 gesetzt werden. Und da die erste Seite zum Zeitpunkt der Generierung noch angezeigt hat, dass das pdf nicht generiert wurde, brauche ich den reload.
Sonst klickt der user nochmal drauf und nochmal.
So wirds danach gesperrt.

Und ohne js ist das Internet nun mal leider fast nicht mehr nutzbar.
Gruß
tsunami

sobald das pdf geneirert ist, soll in der DB ein Flag
„generiert“ auf 1 gesetzt werden. Und da die erste Seite zum
Zeitpunkt der Generierung noch angezeigt hat, dass das pdf
nicht generiert wurde, brauche ich den reload.

Ja, aber sobald du etwas an den Server sendest, kann der ja immernoch was zurücksenden, verstehst du? Wenn er nun nicht das Formular sondern die Seite wo „Ist Generiert“ oder so draufsteht ausgibt (im Hauptfenster dann natürlich) muss statt zweien nur ein Dokument geladen werden!