Js Popup mit PHP Formular - Übergabe klappt nicht

Chemosh

Grünschnabel
Hallo erstmal,
ich habe folgendes Problem:
Ich habe ein Formular zur Eingabe verschiedener Daten. Diese kann man sich auch wieder anzeigen lassen. Nun habe ich mit javascript ein Fenster erstellt, in welchem die Eingabe von User / Passwort möglich sind um die eingebenen Daten zu editieren.

Mein Problem ist jetzt das die User / Passwort Daten die in das Popup eingeben worden sind, nicht beim Hauptformular ankommen. Das Fenster wird per window.close beim submit button geschloßen. Hier mal das Popup Fenster:

HTML:
<html>
<head>
	<TITLE>Admin-Login</TITLE>
	<link rel="stylesheet" type="text/css" href="../gb_css.css">
</head>
	<body>
		<center>
		<form action="../form.php" name="admin" method="POST">
			<table>
				<th>Adminstrator - Login</th>
				<tr>
					<td>Username:</td>
					<td><input type="text" size="15" name="admin" title="gb_admin User"></td>
				</tr>
				<tr>
					<td>Password:</td>
					<td><input type="password" size="15" name="pw" title="gb_admin Password"></td>
				</tr>
				<tr>
					<td><input type="submit" name="ogin" value="Submit" onclick="javascript:window.close();"></td>
				</tr>
			</table>
		</center>
		</form>
	</body>
</html>
 
Hi,

Du könntest dem Fenster, welches das PopUp-aufrufende Dokument enthält, im onload-Event einen Namen zuweisen.
Code:
<body onload="this.name='OpenWin';">
Im PopUp-Dokument gibst Du im Form-Tag den vergebenen Fensternamen im target-Attribut an.
Code:
<form action="../form.php" name="admin" target="OpenWin" method="POST">

Vielleicht hilft Dir das weiter.

Ciao
Quaese
 
Als erstes müsste wohl das window.close() aus dem submit knopf raus, er soll die Daten ja erst Senden.

Du wirst ja mit Sessions arbeiten, daher kannst du auch die Daten im Popup an sich selbst senden, validieren und wenn die Authentifizierung geklappt hat schreibst du in die Session das der Login erfolgreich war usw, und lässt anschließend 4 Zeilen JS-Code hinschreiben, sowas:

HTML:
<script>
opener.location.href = opener.location.href + "&login=1";
window.close();
</script>

Dann wird die Seite von der du das Popup aus geöffnet hast neu geladen, ein Parameter mit übergeben (wenn du möchtest) und kannst in deinem Hauptfenster die Daten aus der Session wieder auslesen, und auf den Folgeseiten natürlich auch ,)

So kannst du auch gleich im Popup schreiben "logindaten falsch" oder so.
 
Danke für die schnelle Hilfe erstmal.

@Quaese:
Hat bisher nicht geklappt, zumindest wenn ich das ganze im Hauptscript per
PHP:
if (isset($_POST[login])) { 
 if ($_POST[pw] == "") {
	echo "pw ist leer!<br/>";
} else {
	echo "$_POST[pw]<br/>";
}
 if ($_POST[admin] == "") {
	echo "admin ist leer!";
} else {
	echo $_POST[admin];
}
}

teste.

Ich hatte bei diesem Script bisher keine Sessions benötigt, aber das wäre auch ein weg.
Mfg Chemosh
 
Hi,

mit folgender Kombination klappt es bei mir.

Aufrufendes Dokument:
Code:
<html>
<head>
<title>www.tutorials.de - Aufrufendes Dokument</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body onload="this.name='OpenWin';">
<button onclick="window.open('form_test.html');">open</button>
<p>Folgende Formulardaten wurden mit der Methode POST übermittelt:</p>
<?php
	if(isset($_POST)){
  	foreach($_POST as $key => $entry){
    	echo($key . ": " . $entry . "<br />");
    }
  }
?>
</body>
</html>
PopUp-Dokument:
Code:
<html>
<head>
<title>www.tutorials.de - PopUp-Dokument</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<form action="../form.php" onsubmit="window.close();" target="OpenWin" method="POST">
			<table>
				<th>Adminstrator - Login</th>
				<tr>
					<td>Username:</td>
					<td><input type="text" size="15" name="admin" title="gb_admin User"></td>
				</tr>
				<tr>
					<td>Password:</td>
					<td><input type="password" size="15" name="pw" title="gb_admin Password"></td>
				</tr>
				<tr>
					<td><input type="submit" name="login" value="Submit" onclick="javascript:window.close();"></td>
				</tr>
			</table>
</form>
</body>
</html>
Ciao
Quaese
 
Hallo Quaese,
bei mir funktioniert das ganze nicht. Ich geb die Daten ein, drücke auf Submit und nichts passiert, abgesehen davon dass das Fenster sich schließt. Ich habe deinen Code kopiert, nichts verändert und das ganze so getestet.
Das gibts doch net :confused:
Danke
 
Also vielleicht sehe ich ja auch was falsch. Aber wenn ich das Skript das du netterweise online gestellt hast ausprobiere, zeigt der mir nicht die eingebenen Felder an.

Aha ok, ich hab das ganze gerade im Internet Explorer getestet und da funktioniert es nicht. Im IE hingegen schon ^^
 
Zurück