pencil Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 Hallo, kann ich mehre Forms auf einer html-seite verwenden, und diese ineinander verschachteln? Beispiel: <form name=main> <form name=sub0> </form name=sub0> <form name=sub1> </form name=sub1> ... </form name=main> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 form ... Kindelemente: 1. nach Seite HTML Strict: [block-Elemente] (außer form) | script 2. nach Seite HTML Transitional: [block-Elemente] (außer form) | [inline-Elemente] ... Mehrere Formulare kannst du verwenden, aber kein Form in einem anderen. Was soll das überhaupt bringen? <form name="form1" ... > </form> </form name="form2" ... > </form> ... Das ist ok, und dein Konstrukt tut ja nichts anderes... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 Was soll das überhaupt bringen?Solche Situationen hab ich irgendwie ziemlich oft. Nämlich dann, wenn es einen ganzen Rutsch Eingabefelder gibt, und über zwei Buttons zwei verschiedene Aktionen mit den Werten ebendieser Eingabefelder vorgenommen werden sollen(zB "Vorschau" und "Erstellen"). Da zwei Formulare mit unterschiedlichen Programmen dahinter für beide Fälle definiereren bringt in der Regel wenig, speziell wenn die Aktionen in weiten Teilen recht ähnlich sind. Die "simple" Lösung besteht darin, zwei Submit-Buttons mit unterschiedlichen Werten einzubauen, und diesen Wert dann entsprechend im Folgeprogramm auszuwerten - irgendwie hab ich das noch nie wirklich gemacht:hells:... Etwas eleganter (aber nicht immer akzeptabel) ist eine Lösung per Javascript (nur mal schnell hingeschmiert): <script type="text/javascript" language="JavaScript"> function DoVorschau() { // action 2 = Vorschau document.meineform.action='2'; meineform.submit(); } </script> [...] <form name="meineform"> [...] <!--- Standard-Action 1= Erstellen --> <input type="hidden" name="action" value="1"> <input type="submit" [...]> <input type="button" value="Vorschau" onClick="javascript:DoVorschau();"[...]> </form> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 und wieso nicht ein Form und ein Submitbutton ? im nächsten Dokument hast du eben paar variablen mehr -> NA UND ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 und wieso nicht ein Form und ein Submitbutton ? im nächsten Dokument hast du eben paar variablen mehr -> NA UND ?Das klappt halt so pauschal nicht immer... siehe mein Beispiel. Natürlich könnte ich nach dem Submit noch eine weitere Seite anzeigen, wo der User erstmal auswählen darf, ob er nur eine Vorschau oder gleich das fertige Ergebnis erhalten darf. Aber sonderlich benutzerfreundlich ist das hier wohl nicht (mal abgesehen davon, dass mein Kunde das idR so nicht will). Es kommt also immer darauf an... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 Solche Situationen hab ich irgendwie ziemlich oft. Nämlich dann, wenn es einen ganzen Rutsch Eingabefelder gibt, und über zwei Buttons zwei verschiedene Aktionen mit den Werten ebendieser Eingabefelder vorgenommen werden sollen(zB "Vorschau" und "Erstellen"). Da zwei Formulare mit unterschiedlichen Programmen dahinter für beide Fälle definiereren bringt in der Regel wenig, speziell wenn die Aktionen in weiten Teilen recht ähnlich sind. Die "simple" Lösung besteht darin, zwei Submit-Buttons mit unterschiedlichen Werten einzubauen, und diesen Wert dann entsprechend im Folgeprogramm auszuwerten - irgendwie hab ich das noch nie wirklich gemacht:hells:... <form name="form1"...> ... <input type="submit" name="submit" value="Vorschau" /> <input type="submit" name="submit" value="Speichern" /> </form> #php if ($_POST["submit"] = "Vorschau") { ... } else if ($_POST["submit"] = "Speichern") { } [/php] (nur mal schnell hingeschmiert) Zur unterschiedlichen weiteren Behandlung der übermittelten Daten können Sie mehrere Absendebuttons mit name-Attribut verwenden. [/Quote] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Markus.K Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 Hmpf, jetzt weiss ich auch, warum ich das nicht so machen konnte... unsere hauseigene Perl-Standardbibliothek packt alle übergebenen Formularfelder, die eine bestimmte Namenskonvention erfüllen, in einen Hash, und überschreibt alles andere (aus welchen Gründen auch immer) mit NULL - somit komm ich an den Value des submit gar nicht direkt ran... naja ok diese Einschränkung kann ich noch aufheben. Allerdings hab ich so das dumpfe Gefühl, dass es dann (zumindest für mich) noch immer Fälle gibt, wo meine Javascript-Murkserei Sinn ergeben könnte - an gerade sowas hock ich aktuell auch dran. Bezogen auf mein Beispiel soll das "Ergebnis" (PDF) in einem neuen Browserfenster aufgehen (target="_blank") während die Vorschau (HTML) im aktuellen Frameset (target="inhalt") angezeigt werden soll. Oder krieg ich das auch mit nur einem Form und ohne JS hin? *grübel* (ist hier aber nicht soo wichtig, da die Anwendung aus anderen Gründen ohne JS nicht geht) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 20. Januar 2006 Teilen Geschrieben 20. Januar 2006 Bezogen auf mein Beispiel soll das "Ergebnis" (PDF) in einem neuen Browserfenster aufgehen (target="_blank") während die Vorschau (HTML) im aktuellen Frameset (target="inhalt") angezeigt werden soll. Oder krieg ich das auch mit nur einem Form und ohne JS hin? *grübel* Da nur das Form selber das Attribut "target" unterstützt, wirdst du das einfach so nicht hinbekommen. Also nur, mit Javascript eben, indem du im Form beispielsweise bei onsubmit prüfst, welcher Button gedrückt wurde... naja, dann kann man es ja aber eh gleich ganz per Javascript machen (wie in deinem Beispiel). So schlecht ist die JS Lösung auch wieder nicht, hab es auch schon so gelöst, weil JS für diese Funktionalität eh notwendig war (die Seite selber war ohne JS nutzbar, aber die Admin Funktionalität eben nur mit). Ohne JS könntest du es nur über ein PopUp lösen (von der aufgerufenen Seite aus)... aber auch nicht gerade schön. 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.