Hilfe habe einen großes Problem

Matthiasghh

Mitglied
Hallo User,

ich habe ein Großes Problem:

Es öffnet sich ein Popup Fenster wo man Benutzernamen und Passwort eingeben kann dieses wird per Post abgeschickt jetzt möchte ich das dass Popup Fenster schließt und das sich die Aktuelle Seite die im Hintergrund ist womit ich das Popup geöffnet habe eine neue Seite aufruft.

Wer kann helfen ?

Hier das Javascript was ich schon habe funktioniert auch alles Super aber die Postdaten werden nicht übergeben !

Code:
javascript:opener.location.href='member/check.php'; self.close()
 
Das ist normal, weil Du einen GET-Aufruf machst.

Wie wär's denn damit, die Feldinhalte in Hidden-Felder in der Haupt-Seite zu schreiben und dieses Hauptseiten-Formular dann abzuschicken?

Code:
opener.myForm.x.value = "Max";
opener.myForm.y.value = "Moritz";
opener.myForm.submit();
 
Um POST-Daten zu übermitteln, musst du ein Formular senden.
Ändere beim Senden des Formulars im Popup das "target" auf den Fensternamen des Elternfensters.
Da dieses aber standardmässig keinen Namen hat, gebe ihm erstmal einen.

Dann kann das Formular gesendet, und ein wenig später das Fenster geschlossen werden.
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function funktion(objForm)
{
        //Elternfenster(falls vorhanden)mit namen versehen
    if(opener && !opener.closed) opener.name="mutti";
        //Zielfenster des Formulars ändern
    objForm.target="mutti";
        //zeitverzögertes Schliessen
    setTimeout('self.close()',1000);
    return true;    
}
//-->
</script>
</head>
<body>
<form action="member/check.php" onsubmit="return funktion(this)"method="post">
<!-- formularfelder -->
</form>
</body>
</html>
 
...wobei sich nun noch die Frage stellt, ob man nicht das Login im Hauptfenster unterbringen sollte. Falls das Login bereits erfolgte, könnte man die beiden betreffenden Felder bequem per Style-Sheets unsichtbar machen.

Meine Variante wäre so zu verstehen:
HTML:
<body>
<form name="heinz" onSubmit="javascript:sendAll()">
<!--Formularfelder-->
</form>
Code:
function sendAll() {
  opener.myForm.name.value = heinz.name.value;
  //usw.
  opener.myForm.submit();
  self.close();
}

Das Formular "myForm" befindet sich in der Hauptseite und enthält die nächste Seite im "action"-Attribut, die Du mit den Formularinhalten aufrufen willst.
 

Neue Beiträge

Zurück