Window.name in Verbindung mit METHOD=POST

Hallo,

bin eher noch Anfänger in Javascript und habe jetzt ein Problem mit dem window-Objekt ( auf selfhtml unter http://aktuell.de.selfhtml.org/artikel/javascript/we… ) bzw. mit Datenweitergabe per URL.

Und zwar schreibe ich eine MFC-Anwendung in C++, die Grafik jedoch ist in HTML mit Javascript geschrieben (Fragebogeneingabe mit mehreren Seiten über die HTML-Maske mit anschließender Verarbeitung in C++). Bisher hat alles super geklappt.

Die eingegebenen Daten wurden in HTML per POST an das C+±Programm gesendet (muss POST sein, da die C+±Anwendung die Daten so auffängt) und dort abgefangen. Da es sich um mehrere Fragebogenseiten handelt, kann man zwischen den Seiten hin und her springen und die bisher eingegebenen Felder müssen dann noch die eingegebenen Daten enthalten. Hier habe ich jetzt mein Problem.

Zunächst wollte ich die eingegebenen Daten einfach per URL weitergeben und die neuen Felder jeweils anhängen. Schien mir am einfachsten. Habe dann rumprobiert und den Querystring mit ?name1=wert1&… versucht anzuhängen. Auf der nächsten Seite habe ich nur ?name1=&name2=… erhalten, also der eigentliche Wert fehlte einfach. Auch mit ?name1="+wert1 oder ?name1="+wert1.value habe ich einfach nicht auf die Werte zugreifen können.

Über Selfhtml kam ich nun zu dem Ansatz mit window.name. Die Daten sind auch auf jeder Seite abrufbar, allerdings erhält nun mein C+±Programm keine Daten mehr. Der sonst empfangene String name1=wert1&name2=wert2&… ist einfach leer bzw. es wird nichts empfangen. METHOD=POST ist aber wie vorher noch drinne und ich habe nur die Änderungen wie auf der Selfhtmlseite zu window.name eingefügt…??? Irgendwie scheinen die Daten nun nicht mehr per POST gesendet zu werden?

Weiß jemand Rat zur URL-Übergabe oder zu der window.name-Problematik? Oder kann mit jemand einen Tipp geben, wie die Daten per POST versendet werden und trotzdem irgendwie in den HTML-Feldern gespeichert bleiben? Gerne einen möglichst einfachen Ansatz.

Vielen, vielen Dank schon mal.
Viele Grüße
Verena

Siehst du bei den vielen Formularen denn überhaupt durch ?
Ich würde eine Hauptseite (opener) und 3 oder 4 Unterseiten machen.
Alle Daten werden auf der Hauptseite gesammelt und von dort verschickt.
Mit opener.variable, opener.function(variable),
oder opener.document.forms[0].elements[x].value
bzw. den getElemets-Funktionen kann man die Daten transportieren.
Wenn das Hauptprogramm aktiv sein soll, dann statt opener eben die Namen der Unterseiten, die du beim Öffnen mit
Seitenname=windows.open(„SeiteX.htm“); vergeben hast.

Danke erstmal für die Antwort.
Meinst du das ganze mit Frames?
Die Seiten werden nach einer Papierversion eingegeben und sollen möglichst genauso aussehen, also auch je Seite dasselbe enthalten, wie die Papierversion (insgesamt 14 Seiten).
Wenn ich das mit Frames mache, habe ich dann sozusagen alle eingegebenen Felder bzw. alle Daten immer griffbereit?
Momentan werden bei jeden Weiter-Klick auf die nächste Seite die Daten per POST an mein C++ Programm gesendet, das würde dann so nicht mehr gehen oder? Oder kann man bei Frames beim Weiterklicken auch ein POST machen?
Hmm, ich müsste dann wohl alles umstricken und leider muss es bald fertig sein…
Woran kann es liegen, dass ich die Daten nicht an die URL hängen kann? Das schien mir ja die einfachste Lösung, aber es wurde immer nur der Name gesendet und der eigentliche Wert war leer…?

Bin für jeden Tipp dankbar…

Was hältst du von ?
Hallo CruzWoman,

warum schleifst du die Daten vorangegangener Seiten nicht einfach in gleichnamigen INPUT-Elementen vom Typ „hidden“ weiter?

http://de.selfhtml.org/html/formulare/versteckte.htm

Gruß Gernot

Hallo Gernot,

wie gebe ich die Daten denn dann von SeiteA an SeiteB? Ich mache ja ein POST und kein GET.
Wenn ich das richtig verstanden habe würden dann die aktuellen Felder sowie die hidden Felder automatisch im Querystring weitergegeben werden, oder? Dazu muss ich aber auf SeiteB die Daten auch haben, um dann alle wieder an SeiteC weitergeben zu können.
Wenn ich mir selbst einen Querystring bastele und an die URL beim action-Attribut hänge, wird halt nie der Wert mit gesandt, sondern nur der Name…

Grundsätzlich würde mir das mit den hidden-Feldern ganz gut gefallen, wenn ich halt die Daten auch weitergeben kann. Habe auch irgendwo gelesen, dass bei POST trotzdem irgendwie ein GET gemacht wird, stimmt das? Dann müssten die Daten doch eigentlich automatisch im Querystring mit gesandt werden und ich müsste mir den String dann auftrennen, oder werden die Daten, bei gleich benannten hidden Feldern, auch automatisch dort hineingeschrieben?
Ich probiere das mit den hidden-Feldern gleich mal aus…

Danke erstmal.
Viele Grüße
Verena

keine Frames
Die Lösung mit den hidden-Feldern ist wohl jetzt einfacher umzusetzen.
Ich hatte kein Frameset vorgeschlagen, das würde aber genauso arbeiten, nur sind da ja die Seiten alle nebeneinander.
Man kann sie zwar auch als Vollbild hinkriegen, da hat man aber jede Mühe, das Layout für Mini und Maxi zu machen.
Umgekehrt kann mann auch einzelne Seiten, die von der Hauptseite geöffnet wurden, frei positionieren und verkleinern.
Ist irgendwie doch recht ähnlich.
Schließlich könnte man noch mit arbeiten und die unbenutzten Felder oder Layer dann verkleinern oder links verschwinden lassen.

bin am verzweifeln
Hallo,

ich habe jetzt alles mögliche ausprobiert.

window.name geht nicht, weil POST ein action-Attribut benötigt, aber location.href verwendet wird, irgendwie umändern hat bei mir nix gebracht.

Cookies gehen nicht, weil der C+±Browser (bzw. Klasse CHTMLView.cpp) dass wohl nicht richtig unterstützt.

URL-Datenweitergabe geht nicht mit POST, gibt man selbst von Hand die Variablen an (also action=„NaechsteSeite?varName=“+document.form1.varWert.value oder nur action=„NaechsteSeite?varName=varWert“ oder ähnlich) wird die URL bis einschließlich …varName= übertragen, der Wert selbst fehlt einfach. Damit fallen hidden Felder auch weg, weil halt nix vernünftiges gesendet wird.

Frames gehen nicht, weil man dort wohl auch kein POST machen kann, ähnlich wie bei window.name

userData Behaviors von Microsoft gehen nicht, weil dann z.B. focus() nicht mehr ging.

Mit window.name, userData und Frames konnte ich Daten weitergeben, aber dann eben kein POST machen, damit ich die Daten auch in mein C+±Programm bekomme.

Könntest du das mit der Hauptseite und den Unterseiten nochmal näher erklären, oder mal einen Link zu SelfHTML senden, wo was dazu steht? Geht dabei denn POST?

Hat sonst noch jemand eine Idee? Bin für alles dankbar…

Vielen Dank schon mal.
Verena

Im Urprungsartikel schriebst du: Bisher hat alles geklappt.
Wieweit bist du denn überhaupt ?
Wie werden denn die 14 HTML-Seiten aufgerufen ?
Es muss doch eine Startseite geben und die ruft dann die nächste auf.
Mit welchem Kommando und wie sieht die Startseite aus ?
Und wie wird dann die dritte Seite erzeugt ?
Senden alle 14 Seiten Ihre Daten und vieviel?
Ich kann die Sache mit den Unterseiten bzw. Frames weiter auswalzen,
aber vorher erkläre noch die par Fragen.
Ich würde die Variante mit einer Hauptseite bevorzugen.
Beispiele kann ich per Mail senden,
wenn du mir deine Adresse mitteilst, möglichst auch deine Webseite, sofern schon online.
Gruss Joachim

Hallo Joachim,

hab direkt an dich geschrieben, weils doch recht lang geworden ist.

Bis dann.
Verena