mkScheller Geschrieben 10. März 2005 Teilen Geschrieben 10. März 2005 Servus Kollegen, ich habe eine JSP [auswahl.jsp] mit einem Formular und etlichen Eingabedaten sowie checkboxes und einem Continue-Button. Wenn der User nun auf den Continue-Button klickt, sollen die Formulardaten an eine andere JSP [anzeige.jsp] innerhalb eines neu erscheinenden Fensters gesendet werden. Sprich: Die auswahl.jsp soll nicht neu mit 'ihren' Formulardaten geladen werden, sondern ein neues Browser-Fenster soll aufgehen, in welches anzeige.jsp mit den Formulardaten geladen wird. Und letztendlich noch eine Frage: Wie geht das? Danke für support. Kann man denn mittels onSubmit="window.open..." die Formulardaten an das neue window schicken? und wie ist das denn mit action="anzeige.jsp" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 du kannst im <Form>-Tag, wie bei einem Link, das Target attribut verwenden. <form target="_blank"......> d.h. du kannst mit onsubmit über window.open ein neues Fenster offen und dieses auch als Target verwenden. <form target="neuW" onsubmit="window.open('','neuW','fensterattributte.... '); .......>" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Wenn der User nun auf den Continue-Button klickt, sollen die Formulardaten an eine andere JSP [anzeige.jsp] innerhalb eines neu erscheinenden Fensters gesendet werden. Das hat mit JSP erstmal wenig zu tun, sondern mit HTML. Und die Lösung hier ist das target Attribut im <form> Tag. http://de.selfhtml.org/html/formulare/index.htm Kann man denn mittels onSubmit="window.open..." die Formulardaten an das neue window schicken? Nein, onSubmit wird sozusagen als Callback aufgerufen um dem System mitzuteilen "Ich bin kurz davor, das Formular abzuschicken, check mal ob noch irgendwas gemacht werden muss". Das Ziel darin zu ändern wäre auch äusserst schlechter Stil. Generell: Beschäftige dich genauer damit, was Formulardaten überhaupt sind und wie sie vom Browser und vom Server verarbeitet werden und besonders wer für was zuständig ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Nein, onSubmit wird sozusagen als Callback aufgerufen um dem System mitzuteilen "Ich bin kurz davor, das Formular abzuschicken, check mal ob noch irgendwas gemacht werden muss". Das Ziel darin zu ändern wäre auch äusserst schlechter Stil. *erstmal zustimm* aber mittels onSubmit ein neues Fenster zu offnen und dann mittels Target den inhalt darin anzuzeigen ist in meinen augen kein schlechter stil! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 *erstmal zustimm* aber mittels onSubmit ein neues Fenster zu offnen und dann mittels Target den inhalt darin anzuzeigen ist in meinen augen kein schlechter stil! doch meiner Meinung nach ist das auch schlechter stil! Warum nicht einfach das JavaScript unabhängige "target" attribut des Formulars verwenden? Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 wenn man das neue Fenster mit Standardwerten haben möchte (als _blank) ist das ohne Java besser... Hier mal ein BSP mit JS: <form action="http://www.voteonline2.de/cgi-neu/vote0n.cgi?action=results&thema=84696" method="POST" onsubmit="window.open('';'clickvote';'width=486,height=527,scrollbars=yes,resizable=yes,menubar=no,location=no');" target="clickvote"> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 *erstmal zustimm* aber mittels onSubmit ein neues Fenster zu offnen und dann mittels Target den inhalt darin anzuzeigen ist in meinen augen kein schlechter stil!Das kommt drauf an worüber wir genau sprechen. Ein neues Fenster zu öffnen ist kein Problem und auch nicht zwangsläufig schlechter Stil (wobei ich Popups immer für schlechten Stil halte aber das ist ein anderes Thema). Das Problem ist ein anderes: Wenn ich im onSubmit ein window.open ausführe, dann werden sämtliche Daten, die ich im Formular eingetragen habe nicht mit übernommen und dann wäre das ganze Formular sinnlos. Und wenn mir jetzt einer kommt und sagt, ich kann ja mit JS die Formular-Felder auslesen und an die URL als Parameter anhängen, dann ist das sowas von schlechter Stil, dass ich da überhaupt nicht erst dran denken würde wenn man das neue Fenster mit Standardwerten haben möchte (als _blank) ist das ohne Java besser...Java hab ich da sowieso nirgendwo gesehen. Merke: Java != JavaScript. Ausser dem Namen haben diese beiden Sprachen sehr wenig gemeinsam. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Das Problem ist ein anderes: Wenn ich im onSubmit ein window.open ausführe, dann werden sämtliche Daten, die ich im Formular eingetragen habe nicht mit übernommen und dann wäre das ganze Formular sinnlos. Doch werden sie, weil die Daten weiterhin an die Datei gesendet werden, nur das diese Datei nicht im Aktuellen Fenster angezeigt wird sonder über das Target-Attribut in das gerade geöffnete Fenster gelanden wird. Java hab ich da sowieso nirgendwo gesehen. Merke: Java != JavaScript. Ausser dem Namen haben diese beiden Sprachen sehr wenig gemeinsam. Sorry meinte natürlich JavaScript Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Doch werden sie, weil die Daten weiterhin an die Datei gesendet werden, nur das diese Datei nicht im Aktuellen Fenster angezeigt wird sonder über das Target-Attribut in das gerade geöffnete Fenster gelanden wird. Ich redete von den Daten, die an das neu geöffnete Fenster gehen. Klar, das Original-Formular wird weiterhin an die Original-Action-URL weitergeleitet. Mit window.open bekommst du kein target gewesechselst sondern so (ungetestet): <html> <head> <script language="JavaScript"> function formSubmit(theForm) { theForm.target = "_blank"; } </script> </head> <body> [...] <form name="form1" method="post" target="_self" onsubmit="formSubmit(this)"> [...] </form> </body> </html> Es sei denn, du erklärst mir, wie ich die den Inhalt der Felder <b>f1</b> und <b>f2</b> an die Seite <b>s2.html</b> übertragen bekomme: <script language="JavaScript"> function formSubmit(theForm) { // So, hier bekomme ich die Werte nicht mit übergeben! window.open("s2.html", "_blank"); } </script> <form name="form1" action="s1.html" method="post" onsubmit="formSubmit(this)"> <input name="f1" value="f1_value" /> <input name="f2" value="f2_value" /> </form> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 @perdi: *zustimm* :-) Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 Hey Leute, ich glaube wir reden an einander vorbei. Deshalb hier mal mein Beispiel wie ich es meine: die Eingabemaske: <html> <head> <title>Form-Test</title> </head> <body> <form action="ausgabe.php" name="form1" method="post" onsubmit="window.open('','Ausgabe','width=486,height=527,scrollbars=yes,resizable=yes,menubar=no,location=no');" target="Ausgabe"> Testeingabe1:<input type="text" name="test1"> Testeingabe2:<input type="text" name="test2"> <input type="submit" value="absenden"> </form> </body> </html> die Ausgabemaske: <html> <head> <title>Form-Test</title> </head> <body> <? echo "Eingabe1 = ".$test1; echo "<br>"; echo "Eingabe2 = ".$test2; ?> </body> </html>[/PHP] Das ganze Testen könnt ihr unter: www.jugendforum-magdeburg.de/pcnico/fi-forum/ Es wird ein neues Fenster mit window.open geöffnet und in dieses wird die ausgabe datei geladen. Ganz ohne Javascript (bis aufs Fensteröffnen natürlich) Gruß der Nico Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 Wow das ist in der Tat ein interessantes Verhalten - hätte nie geglaubt, dass das funktioniert, wenn ich es nicht selber gesehen hätte Wie auch immer, ich halte das so in der Art, wie du es verwendest trotzdem für alles andere als sauber - ich finde es einfach unnütz mit JavaScript zu arbeiten, wo es nicht wirklich benötigt wird. Aber okay, das muss jeder mit sich selber ausmachen :cool: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 Wow das ist in der Tat ein interessantes Verhalten - hätte nie geglaubt, dass das funktioniert, wenn ich es nicht selber gesehen hätte Wie auch immer, ich halte das so in der Art, wie du es verwendest trotzdem für alles andere als sauber - ich finde es einfach unnütz mit JavaScript zu arbeiten, wo es nicht wirklich benötigt wird. Aber okay, das muss jeder mit sich selber ausmachen :cool: Ob es sauber ist oder nicht, darüber kann man streiten Ich verwende diese Methode auch nicht, hab sie nur mal geshen und wenn mkScheller halt sowas sucht soll er es auch bekommen. :marine Wie gesagt, der 2 Wert beim window.open kann wie ein Framename verwendet werden, mittels Target Attribut. PS: echt cool das man hier so toll diskutieren kann :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 15. März 2005 Teilen Geschrieben 15. März 2005 Ob es sauber ist oder nicht, darüber kann man streitenNaja was der eine als sauber ansieht ist für den nächsten schon wieder das reinste Schlachtfeld. Ich gebe zu, wenn ich Quellcode sehe, den ich vor zwei oder drei Jahren geschrieben habe dann muss ich mir auch ab und zu an den Kopf fassen und denke "Was hast du dir denn dabei gedacht? Hast du dir da überhaupt was bei gedacht?" und wenn mkScheller halt sowas sucht soll er es auch bekommen.Ne ne, wir verderben hier niemanden Im ernst, ich denke es ist viel wichtiger jemandem zu erklären, wieso die Lösung, die er anstrebt nicht bzw. nur über dreckige Umwege machbar ist anstatt einfach einen Codeschnipsel zu präsentieren und zu sagen "So, hier haste was - fertig." PS: echt cool das man hier so toll diskutieren kannWell... in diesem Thread scheint das so zu sein, bei anderen Beiträgen wage ich diese Behauptung anzuzweifeln *g* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mkScheller Geschrieben 16. März 2005 Autor Teilen Geschrieben 16. März 2005 Hi leute, danke für die zahlreichen Antworten und die Lösung meines Problems. Da ich die Variante von pc-nico sehr gut und auch sehr >sauber< finde, werde ich diese einsetzen. Habe es ohne PHP aber doch mit request.getParameter bzw einer JavaKlasse die HttpServlet erweitert gemacht/werde es noch machen - d.h. im Test gerade eben hat es funktioniert. (war die ersten beiden tage der Woche unterwegs, daher die späte Antwort und das späte Dankeschön) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mkScheller Geschrieben 31. März 2005 Autor Teilen Geschrieben 31. März 2005 Hi Kollegen, nun stellt sich ein erweitertes Problem: <form name="fnCaro" action="/cars/carHTML" method="get" target="Ausgabe" onsubmit="if (validateOptions()) {window.open('', 'Ausgabe','width=640,height=480,scrollbars=yes,resizable=yes,menubar=no,location=no');}"> Erklärung Bei Überprüfung durch onsubmit wird eine Methode aufgerufen, die entweder true oder false zurückgibt. Anhand dieses Rückgabewertes sollte nun das neue Fenster geöffnet werden und die Formulardaten abgeschiuckt werden oder halt nicht. Das Problem Das Problem ist, dass die neue Seite sich auch öffnet, wenn false zurückgegeben wird. Und das weil, so reime ich mir das zusammen, dort ein target angegeben wird, was vorher nie verwendet/angesprochen/reserviert wurde. Die Lösung In die Funktion, die die Werte überprüft [validateOptions()] muss man das window.open('','Ausgabe',...) reinbauen und das onsubmit muss angepasst werden: <form name="fnCaro" ... target="Ausgabe" onsubmit="return validateOptions();"> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.