Verschachtelte Formulare
wurstsemmel
- html
Hallo allerseits! ;)
Ich stehe vor einer kleinen "Herausforderung" und hoffe, dass ihr mich der Lösung eventuell etwas näher bringen könnt - Danke im voraus für jede Anregung.
Herausforderung - In meinem aktuellen Projekt (das ich leider nicht zeigen kann) möchte ich folgendes erreichen:
Nun ist es leider so, dass das Attribut "target" anscheinend nur auf den form-Tag angewendet werden kann, leider nicht auf <input='submit'>.
Um das zu umgehen, habe ich versucht, vor den ganzen Eingabefeldern zwei Formulare zu öffnen, und das innere dementsprechend zwischen den beiden Submit-Buttons wieder zu schliessen - ohne das gewünschte Resultat.
Ich hoffe, ich habe die Problematik ausreichend beschrieben - Hat jemand einen Tipp für mich?
Herzlichen Dank,
Wurstsemmel
Hi!
So weit ich weiß, lassen sich <form>-Tags gar nicht verschachteln.
Mach doch einfach zwei Submit-Buttons mit zwei unterschiedlichen Namen und das serverseitige Skript entscheidet dann in Abhängigkeit vom Namen, was gemacht werden soll.
Also z.B.
if(isset($_POST['submit_speichern']))
{
/* z.B. SQL-Query */
}
if(isset($_POST['submit_vorscau']))
{
/* Ausgabe */
}
Grüße,
Fabian St.
Hi Fabian!
Danke für die Antwort, aber das Problem ist ja nicht die Verarbeitung zweier Submit-Buttons, sondern die vorherige Trennung "Button A öffnet sich in einem neuen Fenster / Button B im gleichen Fenster". Die Befürchtung, dass sich form-Tags nicht verschachteln lassen, habe ich inzwischen auch... ;(
Mach doch einfach zwei Submit-Buttons mit zwei unterschiedlichen Namen und das serverseitige Skript entscheidet dann in Abhängigkeit vom Namen, was gemacht werden soll.
Hallo,
- aber: Der eine Button sendet die Formular-Daten an das gleiche Fenster ("Speichern"), der zweite Button sendet die Formular-Daten an ein neues Fenster ("Vorschau").
warum soll die Vorschau nicht (so wie hier) im gleichen Fenster erscheinen?
Grüße aus Nürnberg
Tobias
Weil wir hier von massiven Text-Inhalten sprechen (in der Breite auf 700 Pixel begrenzt), und nicht nur Autor/Email/Body/Zitat... Ich würde gerne vermeiden, dass erstmal das Preview dargestellt wird, und dann 800-1000 Pixel drunter nochmal die ganzen Eingabefelder.
Die "Sinnfrage" ist hier auch nicht die tatsächliche Frage, sondern die Frage nach einer möglichen Umsetzung. ;)
warum soll die Vorschau nicht (so wie hier) im gleichen Fenster erscheinen?
Hallo,
Ich würde gerne vermeiden, dass erstmal das Preview dargestellt wird, und dann 800-1000 Pixel drunter nochmal die ganzen Eingabefelder.
warum denn - dann ist die Seite halt so lang, bei Wikipedia ist es auch nicht anders, wenn du einen langen Artikel bearbeitest. Außerdem wird das auch ganz schnell unübersichtlich, wenn jemand zwei Artikel (oder was auch immer) gleichzeitig bearbeitet und dann schon vier Fenster rumstehen hat.
Die "Sinnfrage" ist hier auch nicht die tatsächliche Frage, sondern die Frage nach einer möglichen Umsetzung. ;)
mit irgendwelchen js-Verrenkungen geht das vielleicht (wobei ich von der Verwendung von js abraten würde) - mit html alleine geht das aber nicht.
Grüße aus Nürnberg
Tobias
warum denn - dann ist die Seite halt so lang, bei Wikipedia ist es auch nicht anders, wenn du einen langen Artikel bearbeitest. Außerdem wird das auch ganz schnell unübersichtlich, wenn jemand zwei Artikel (oder was auch immer) gleichzeitig bearbeitet und dann schon vier Fenster rumstehen hat.
Wie gesagt - Die "Sinnfrage" steht hier eigentlich nicht zur Diskussion. ;)
Die "Sinnfrage" ist hier auch nicht die tatsächliche Frage, sondern die Frage nach einer möglichen Umsetzung. ;)
mit irgendwelchen js-Verrenkungen geht das vielleicht (wobei ich von der Verwendung von js abraten würde) - mit html alleine geht das aber nicht.
Das wäre dann die erste Stimme, die mich in meiner Vermutung, dass sich das in reinem HTML nicht realisieren lässt, bestätigt. Danke.
Aber da ich für andere Zwecke sowieso schon JavaScript benutzen MUSS (Einfügen vorgenerierter Template-Tags in Formularfelder) - gibt es vielleicht unkomplizierte Ansätze, das Problem auf diesem Weg zu beheben?
Hallo,
Wie gesagt - Die "Sinnfrage" steht hier eigentlich nicht zur Diskussion. ;)
tja, nur ist es in diesem Forum üblich, dass auch mal was hinterfragt wird :-)
Aber da ich für andere Zwecke sowieso schon JavaScript benutzen MUSS (Einfügen vorgenerierter Template-Tags in Formularfelder) - gibt es vielleicht unkomplizierte Ansätze, das Problem auf diesem Weg zu beheben?
wenn das neue Fenster kein Popup sein muss, dürfte es reichen in den Button für die Vorschau ein onclick="this.form.target='_blank';" einzubauen. Wenn die Vorschau von einem anderen Script verarbeitet werden muss, musst du den Wert des action-Attributes eben noch mit http://de.selfhtml.org/javascript/objekte/forms.htm#action ändern - in dem Fall muss dein Script zum Speichern aber darauf reagieren wenn jemand bei abgeschaltetem js den "Vorschau"-Button verwendet (oder du zeigst den Button nur bei eingeschaltetem js).
Grüße aus Nürnberg
Tobias
tja, nur ist es in diesem Forum üblich, dass auch mal was hinterfragt wird :-)
Und das ist grundsätzlich auch gut so... ;)
wenn das neue Fenster kein Popup sein muss, dürfte es reichen in den Button für die Vorschau ein onclick="this.form.target='_blank';" einzubauen. Wenn die Vorschau von einem anderen Script verarbeitet werden muss, musst du den Wert des action-Attributes eben noch mit http://de.selfhtml.org/javascript/objekte/forms.htm#action ändern - in dem Fall muss dein Script zum Speichern aber darauf reagieren wenn jemand bei abgeschaltetem js den "Vorschau"-Button verwendet (oder du zeigst den Button nur bei eingeschaltetem js).
Ok. Und das ist spätestens der Moment, wo ich mich von meinem Beauty-Argument trenne und es dann doch im gleichen Fenster anzeige. Danke für die Hilfe!
Schönen Gruss,
wurstsemmel
Falls der tatsächliche Punkt tatsächlich in der Informationsmasse verschütt gegangen sein sollte:
Ich möchte, dass einer meiner beiden Submit-Buttons das Formular an ein neues Fenster schickt, während der andere dasselbe Formular im gleichen Fenster verarbeitet. ;)