• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Form in Form (Unterscheidung 2er Buttons)

ChillOut

Neues Mitglied
Guten Morgen Forum-Gemeinde,

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.


Ich hoffe ich habe mich verständlich ausgedrückt.

Vielen Dank für die Hilfe

Gruß Björn
 
Guten Morgen Forum-Gemeinde,

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.


Ich hoffe ich habe mich verständlich ausgedrückt.

Vielen Dank für die Hilfe

Gruß Björn

Der Anstaz mit dem Submit war gut :)
Du kannst deinen submit-Buttons nämlich namen geben. Damit kannst du dann prüfen welcher Submit gedrückt wurde.
 
Hallo Gilles,

danke für die Antwort.

Aber wie bekomme ich das Form, welches ich für den Upload benötige in die bereitsbestehende Form integriert?

Bei selfhtml.de habe ich folgenden Code für den Datei-Upload gefunden:

HTML:
<form action="input_file.htm" method="post" enctype="multipart/form-data">
  <p>W&auml;hlen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus:<br>
    <input name="Datei" type="file" size="50" maxlength="100000" accept="text/*">
  </p>
</form>

diesen möchte ich so in meinem bestehenden form unterbringen, neben meinem spechern (submit Button).

Gruß Björn
 
Hallo Gilles,

danke für die Antwort.

Aber wie bekomme ich das Form, welches ich für den Upload benötige in die bereitsbestehende Form integriert?

Bei selfhtml.de habe ich folgenden Code für den Datei-Upload gefunden:

HTML:
<form action="input_file.htm" method="post" enctype="multipart/form-data">
  <p>W&auml;hlen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus:<br>
    <input name="Datei" type="file" size="50" maxlength="100000" accept="text/*">
  </p>
</form>
diesen möchte ich so in meinem bestehenden form unterbringen, neben meinem spechern (submit Button).

Gruß Björn

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
 
Zuletzt bearbeitet:
Hallo Gilles,

wie stelle ich das denn dann an?

Erstelle ich mir mit einem neuen input-Tag einen Button und gebe Ihm einen bestimmten Namen?

Ich agiere in einem Servlet auf die einzelnen Commandos. Das bedeutet, dass ich mit folgender Zeile

request.getParameter("cmd").equalsIgnoreCase("speichern")

abfrage, welcher Button gedrückt wurde und darauf reagiere. In dem form habe ich zuvor ein hidden-Field definiert:

<input type="hidden" name="cmd" value="speichern" />

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.

Gruß Björn
 
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

Code:
  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:
<html>
<head><title>TestForm</title></head>
<body>
<form action="testform.html" method="get">
  <input type="submit" name="absenden" value="OK" />
  <input type="submit" name="moreButtons" value="Mehr Uploads" />
</form>
</body>
</html>

Und schau was passiert wenn du jeweils einen Button drückst. (oben in der Adressleiste gucken)
 
Zurück
Oben