BITTE! BITTE! Ich komme nicht weiter! Variable auslesen
fabian
- javascript
Ich habe im oberen Tochterframe: topframe ein Inputfeld definiert und diesem ein Wert zugewiesen.
Im unteren Tochterframe: hauptframe möchte ich diesen Wert auslesen und wiederum einem inputfels übergeben. Ich habe schon alles versucht und sitze schon so ca. 20 Stunden an diesem beschissenem Problem. Ich komme einfach nicht weiter.
Für eine Hilfe wäre ich sehr dankbar! Ich habe schon alle Hilfen auf Shtml nachgeschlagen und ca. 100 Seiten ausgedruckt. Er tut es bei mir einfach nicht.
So habe ich die Input Form im ersten Fenster definiert.
<script language="JavaScript">
jetzt = new Date();
Sec = jetzt.getSeconds();
var zeit = ((Sec));
</script>
</head>
<body topmargin="0" leftmargin="0">
<form>
<input type=button name="startzeit" value= "">
</form>
<script language="JavaScript">
document.forms[0].elements[0].value = (zeit);
</script>
Und so oder so ähnlich müßte ich doch im unteren Framen an den oberen Wert kommen.
<form>
<input type=button name="startzeit" value= (parent.frames[0].document.forms[0].elements[0])>
</form>
Hi,
Ich habe im oberen Tochterframe: topframe ein Inputfeld definiert
und diesem ein Wert zugewiesen.
Im unteren Tochterframe: hauptframe möchte ich diesen Wert auslesen
und wiederum einem inputfels übergeben.
*Wann* möchtest Du das?
Und so oder so ähnlich müßte ich doch im unteren Framen an den
oberen Wert kommen.
<input type=button name="startzeit" value= (parent.frames[0].document.forms[0].elements[0])>
Nein, so funktioniert das nicht. Du kannst in HTML einem Formularelement
nur statisch einen Wert zuweisen, nicht dynamisch.
Aber das Prinzip ist auch nicht völlig verkehrt: Genau so, wie Du das
Element adressiert hast, dessen Wert Du entnehmen willst, kannst Du
auch das Feld adressieren, in welches Du diesen Wert einsetzen möchtest.
Und jetzt kommen wir wieder zu meiner Ausgangsfrage zurück: Wann (zu
welchem Zeitpunkt) möchtest Du das tun? Davon hängt ab, in welcher
Art und Weise Deine JavaScript-Anweisung aktiviert werden soll.
Die Wahrscheinlichkeit spricht dafür, daß Du als Auslöser irgend einen
Event nehmen wollen wirst, beispielsweise das Ende des Ladevorgangs des
zweiten Dokuments (falls zu diesem Zeitpunkt der Wert im ersten Dokument
zuverlässig verfügbar ist!) oder irgend ein Interaktionsereignis dort.
Viele Grüße
Michael
danke für die schnelle Antwort!
Ich erstelle einen Fragebogen der geht über 5 Seiten. Jede seite wird mir einzeln per mail zugesendet.
Wenn zwei gleichzeitig diesen Fragebogen ausfüllen, geraten die Mails durcheinander und ich kann sie nicht mehr zuordnen. Daher wollte ich im Topframe, das ist eine Menüleiste diesen Wert festlegen. Er sollte sich während des gesamten Ausfüllens des Fragebogens nicht ändern. Ich dachte an die Uhrzeit des aufrufens der Seite.
Wenn dann der Fragebogen jeweils abgeschickt wird, möchte ich aauf der Fragebogenseite (im Hauptframe) ein hidden Inputfeld mit dieser Uhrzeit aus dem Topframe versehen. Das ist eigentlich alles, aber ich beisse mir wirklich die Zähne aus.
Hi,
Ich erstelle einen Fragebogen der geht über 5 Seiten.
Jede seite wird mir einzeln per mail zugesendet.
Wenn zwei gleichzeitig diesen Fragebogen ausfüllen,
geraten die Mails durcheinander und ich kann sie nicht
mehr zuordnen.
Danke für die Erklärung. Jetzt trete ich einen Schritt zurück und
stelle fest: Das Problem liegt nicht im Detail, sondern im globalen
Ansatz.
a) Gib die Zerlegung der Fragebögen in mehrere Mails auf.
In einem anderen Thread wurde gestern beschrieben, wie Du die
Werte eines Formulars in HIDDEN-Feldern der nächsten Seite
durchreichen kannst.
b) Erzeuge eine eindeutige Kennung des Besuchers (beim Abruf
des ersten Formulars dynamisch auf dem Server generieren und
schon als HIDDEN-Feld in diesem Formular ablegen).
Die Zuordnung der Informationen darf nicht auf dem zeitlichen
Ablauf basieren.
(Dieses Forum hier macht übrigens dasselbe - schau Dir mal
den Quelltext des Formulars an, mit dem Du einen neuen Beitrag
absenden kannst.)
c) Verwende CGI oder Gleichwertiges statt Mail, um die Ergebnisse
aufzunehmen.
Ich dachte an die Uhrzeit des aufrufens der Seite.
Nicht eindeutig. Nur ein serverbasierter ID-Generator mit entsprechender
Synchronisation erfüllt Deine Anforderungen.
Wenn dann der Fragebogen jeweils abgeschickt wird, möchte ich aauf
der Fragebogenseite (im Hauptframe) ein hidden Inputfeld mit dieser
Uhrzeit aus dem Topframe versehen.
Richtige Idee (siehe oben), aber falsche Methode.
Dein Problem ist nur auf der Server-Seite zu lösen.
Viele Grüße
Michael
Hi!
So habe ich die Input Form im ersten Fenster definiert.
<script language="JavaScript">
jetzt = new Date();
Sec = jetzt.getSeconds();
var zeit = ((Sec));
Du hast wohl ein sehr inniges Verhaeltnis zu Klammern? ;-)
Und so oder so ähnlich müßte ich doch im unteren Framen an den oberen Wert kommen.
<input type=button name="startzeit" value= (parent.frames[0].document.forms[0].elements[0])>
Nein, Du musst schon HTML und JavaScript unterscheiden. Es gibt bestimmte Stellen, wo man sie mischen kann (insbesondere Event-Handler), aber normalerweise sind das zwei Paar Schuhe.
Aber in Deinem topframe hast Du doch eine Initialisierung schon wunderbart hingekriegt. Hast Du dort etwa
<input type=button name="startzeit" value= "(zeit)">
geschrieben? Nein, Du hast erstmal schoen sauber das </form> geschlossen, und dann in einem extra JS-Teil die Initialisierung vorgenommen. Und nun mach das in Deinem anderen Frame doch einfach genauso. (Uebrigens, vergiss nicht das .value, wenn Du auf den Inhalt eines Formularelements zugreifst.)
So long
Ich glaube ich habe es jetzt!
Jedenfalls hat er die Werte in meinem Testframe übernommen.
Nochmal vielen Dank für deinen Gedankengang. Ich war der Verzweifelung wirklich sehr sehr nahe.
Tatatata:
<script language="JavaScript">
var jetzt = (parent.frames[0].document.forms[0].elements[0].value);
</script>
Gruß Fabian
Hi Fabian,
<script language="JavaScript">
var jetzt = (parent.frames[0].document.forms[0].elements[0].value);
die Klammerung des Zuwesungsausdrucks ist dennoch uberflüssig...
Grüße,
Martin