ich bin Neuling in HTML und in diesem Forum und habe ein kleines Problem.
Ich habe die SuFu bereits genutzt allerdings habe ich auf anhieb nichts gefunden.
Ich habe in einer .jsp Klasse meinen HTML-Code, in dem ich ein Formular darstelle und beim speichern (submit) die Inhalte weiter verarbeite.
Im Prinzip möchte ich es so gestalten, dass ich ein Formular (damit ist nicht das html form gemeint) ausfüllen kann und mit einem Klick auf den Button „Datei Upload“ Dateien hinzufügen kann.
Allerdings soll es außerdem möglich sein, mit dem Button „speichern“ den Inhalt des Formulars zu speichern (was bereits funktionsfähig ist).
Meine Frage ist nun, wie ich dort ein 2tes Form bzw. einen 2ten Button anlegen kann und unterscheiden kann welcher Button geklickt wurde. Derweil ist es so, dass in dem Form des Formulars ein Hiddenfield eingebettet habe und beim Inputtype submit der Value abgefragt wird.
Formulare kannst du nicht verschachteln. Du kannst höchstens serverseitig oder per javascript Uploads hinzufügen Und welche Aktion ausgeführt werden soll aknnst du dann über die submit Buttons auswerten. Du setzt halt mehrere submit Buttons in eine Form
abfrage, welcher Button gedrückt wurde und darauf reagiere. In dem form habe ich zuvor ein hidden-Field definiert:
so weiss ich, dass der Button speichern gedrückt wurde, da ich ja nur einen Button dort angelegt habe. Wie würde ich jetzt einen 2ten Button einfügen? Würde ich einfach einen neuen erstellen und dort einen anderen Value setzen und daraufhin in meinem Servlet reagieren?
Sorry bin in dieser hinsicht noch nicht so erfahren.
Da du ja 2 Aktionen in einer verschachteln willst liest du die Aktion nicht über das hidden field aus, sondern über den namen des submit buttons. Du erstellst 2 Submit Buttons. der eine hat den Namen „moreUploads“ und der andere „absenden“ oder so ähnlich.
Je nachdem welcher Submit Button angeklickt wird, wird auch nur von diesem Submit Button ein Wert mitgesendet.
So kannst du dann im Servlet Abfragen
if(request.getParameter("moreButtons") != null) {
// Aufbauen der JSP mit einer Schleife für Uploads
} else {
// Alle Dateien wurden hochgeladen und nun die Action ausführen
}
Das hidden field kannst du in dem Fall benutzen für die Anzahl der Uploadfelder die du zur zeit hast.
Heisst über diesen Wert, wird dann auch eine Schleife im JSP bzw im Servlet durchlaufen, die dir Uploadfelder erstellt.
Für das verständnis mit den Submits hier mal ein testcode
Erstell eine Datei Namens testform.html irgendwo
[html]
TestForm
[/html]
Und schau was passiert wenn du jeweils einen Button drückst. (oben in der Adressleiste gucken)