Formular -> Popup
Duras666
- html
Hi zusammen!
hab folgendes Problem: ich hab ein kleines formular, wenn da jemand auf "abschicken" klickt, soll da ein poup kommen wo drin steht "Deine stimme wurde gezählt"
is für ein voting!
hier der quelltext:
<form target="vote" action="vote.php" onSubmit="javascript:window.open('vote.php', 'vote', 'toolbar=no,scrollbars=yes,resizable=yes,width=200,height=250')" method="POST">
tuts unter win Xp mit dem ie 6, unter win Me mit dem ie 6, jedoch meinte einer meiner tester, er bekämte unter win2k mit dem ie6 2 neue fenster:
einmal das formatierte popup, ohne die Daten (es kommt eine fehlermeldung)
und einmal kommt dann noch ein _blank-fenster, wo die daten hingesendet wurden!
woran kann es liegen?
mfg
Duras
Hallo,
hier der quelltext:
<form target="vote" action="vote.php" onSubmit="javascript:window.open('vote.php', 'vote', 'toolbar=no,scrollbars=yes,resizable=yes,width=200,height=250')" method="POST">jedoch meinte einer meiner tester, er bekämte unter win2k mit dem ie6 2 neue fenster:
einmal das formatierte popup, ohne die Daten (es kommt eine fehlermeldung)
und einmal kommt dann noch ein _blank-fenster, wo die daten hingesendet wurden!
Das ist kein Wunder. Wenn man das Formular abschickt (onsubmit) wird JavaScript angeworfen, welches das System anweist, ein neues Fenster mit dem Namen "vote" zu öffnen und dort per GET-Request die Ressource "vote.php" aufzurufen. Wenn dieser Vorgang (die Anweisung an das System, _nicht_ der vollständige Aufruf) abgearbeitet ist, dann wird action und target aktiv. Das Formular wird also per POST-Request die Ressource "vote.php" im Fenster mit dem Namen "vote" aufrufen. Nun gibt es zwei Möglichkeiten:
1. Das System hat es bis hierher geschafft, das neue Fenster "vote" zu öffnen, dann gibt es das target und alles funktioniert, wie gewünscht.
2. Das System war zu langsam. Es gibt das Fenster "vote" noch nicht. Deshalb wird der POST-Request in einem neuen normalen (unformatierten) Fenster ausgeführt. Nun erst macht das System das per JavaScript angeforderte neue Fenster auf. Der GET-Request scheitert natürlich dort, weil die Ressource "vote.php" auf einen GET-Request wahrscheinlich gar nicht vorbereitet ist.
Lösung?
Ich weiß keine für Dein ganz spezielles Problem, ohne Grundsätzliches (GET statt POST und Übergabe der GET-Parameter an das Fenster via JavaScript, öffnen des Fensters "vote" im Hintergrund weit früher im Ablauf) ändern bzw. verschlimmbessern zu müssen. Mein Rat: Verzichte auf Pop-Ups.
viele Grüße
Axel