• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Daten zwischen Frames übertragen!?

PseudoPsycho

Neues Mitglied
Hallo!
Ich bin neu hier im Forum und habe natürlich auch sogleich eine Frage...
Ich hatte vor, einen Loginbereich auf eine Website zu bauen, der auf Frames basiert.
Dazu wollte ich die Daten, die in den Eingabefeldern angegeben wurden, mit JavaScript in
ein weiteres Formular mit versteckten Eingabefeldern eines anderen Frames übertragen...
Bevor ihr das sagt: Ich weiß selbst, dass Frames manchmal nervig sind...
Mein Problem liegt nun darin, dass ich wohl die Frames nicht korekt anspreche...

So, folgendes wäre der (vereinfachte) Quellcode:
Hauptfenster:
<html>
<head><title>Hauptfenster</title>
</head>
<frameset cols="50%, 50%">
<frame src="seite1.html" name="seite1">
<frame src="seite2.html" name="seite2">
</frameset>
</html>


Der Quellcode des Formulars:
<html>
<head><title>Seite1</title>
<script language="JavaScript">
function uebertragen()
{
var eingabe=window.self.document.formular.eingabe.value;
window.top.seite2.document.fomular.eingabe.value=eingabe;
}
</script>
</head>
<body>
<form name="formular">
<input name="eingabe" value="test">
<br><a href="javascript:uebertragen()">Daten &uuml;bertragen!</a>
</form>
</body>
</html>

Der Quellcode des Zielfensters:
<html>
<head><title>Seite2</title>
</head>
<body>
<form name="formular">
<input name="eingabe" type="hidden">
</form>
</body>
</html>
 
Zuletzt bearbeitet:
Gibt es eine Fehlermeldung? (Du weißt wo du diese findest in deinem Browser?)
 
Naja, mir wird nur angezeigt "Zeile:7, Zeichen:1
'window.top.document.formular.eingabe' ist Null oder kein Objekt!"
Deshalb frage ich ja hier: Wie muss die Framebezeichnung richtig heißen???
 
Das Frame müßte über parent.seite2 ansprechbar sein.

window.self kannst du auch kürzer schreiben. self ist das window. Es reicht also eines von beiden.
 
Das nützt leider nichts, wenn ich das in parent.seite2.document.formular.eingabe.value umändere...
Die Fehlermeldung bleibt, aber sonst geschieht weiterhin nichts... :(
 
Hurra! Ich habe die Funktion einfach mal umgeändert in
Code:
function uebertragen()
{
window.top.frames.seite2.document.formular2.eingabe2.value=window.self.document.formular.eingabe.value;
}
und nun funzt es. Was ich zuvor falschgemacht habe, weiß ich nicht...
Dann kann ich jetzt schonmal mit dem Proggen des Loginfeldes weitermachen :)
 
Hurra! Ich habe die Funktion einfach mal umgeändert in
Code:
function uebertragen()
{
window.top.frames.seite2.document.formular2.eingabe2.value=window.self.document.formular.eingabe.value;
}
und nun funzt es. Was ich zuvor falschgemacht habe, weiß ich nicht...
Ich auch nicht. Dein Code ist im Prinzip nichts anderes, als das was ich dir gezeigt hatte, nur umständlicher.

In deinem Fall ist top identisch mit parent, die Collection frames brauchst du nicht. Und wie schon mal gesagt ist self gleich window.

Das müßte ausreichen:
Code:
function uebertragen()
{
parent.seite2.document.formular2.eingabe2.value  = window.document.formular.eingabe.value;
}
 
Jaja, mag sein...
Aber jetzt funktioniert das ja problemlos -> Alles, was ich durchs Editieren noch erreichen könnte, ist, dass ich irgendeinen Fehler reinbaue und das System lahmlege...

'habe passend dazu auch ein Registrationsformular eingebaut, welches mit PHP die Daten in eine JavaScript-Datenbank reinschreibt, sodass sich Nutzer sofort einloggen können, bzw. dies bereits automatisch werden...

Du kannst es dir ja 'mal anschauen: Meine Website
 
Zurück
Oben