Alex: Zwei Formulare

Hallo!

Komplexes Programm einfach erklärt:

Ich habe zwei Formulare auf einer Seite. Wenn der Benutzer nun das obere Formular ausgefüllt hat, jedoch das untere abschickt, sind die Daten in dem oberen natürlich weg. Beide Formulare können jedoch nicht zusammen abgeschickt werden.

Wie bekomme ich das hin, dass ich das untere der beiden Formulare abschicken kann und die Daten in dem oberen erhalten bleiben?

Gruß und Dank!

Alex

  1. PHP oder wie hättest Du es gern?

    Wenn Du es mit Perl/CGI oder PHP behandeln kannst:

    Mach (technisch betrachtet) ein Formular, sende die Daten an das Script und laß dieses entsprechend reagieren und die Formulardaten aus dem "anderen" Formular wieder eintragen.

    fastix

    1. Ich werde wohl nicht drumrumkommen, das Programm etwas zu erläutern:

      Also, ich bin ein Mail-Programm am schreiben. Das erste Formular dient dazu, Empfänger, Text, Betreff... einzugeben.

      Mit dem zweiten Formular kann man die einzelnen Attachments hochladen.

      Nun ist das Problem: Der Use gibt schon Empfänger, Betreff, Text... ein und will nun noch ein Attachment hinzufügen. Das er nun dieses Formular ausfüllt und abschickt, sind die anderen Daten weg.

      Das ganze ist in PHP geschrieben.

      Ich kann mir selber eigentlich garnicht vorstellen, wie ich das realisierne könnte.

      Wenn man nur eine Datei als Anhang versenden könnte, wär das alles kein Problem. Aber so...

      Danke und Gruß!

      Alex

      1. Hi Alex,

        Nun ist das Problem: Der Use gibt schon Empfänger, Betreff, Text... ein und will nun noch ein Attachment hinzufügen. Das er nun dieses Formular ausfüllt und abschickt, sind die anderen Daten weg.
        Ich kann mir selber eigentlich garnicht vorstellen, wie ich das realisierne könnte.

        einzelne HTTP-Requests sind gedächtnislos. Also scheinst Du ein Gedächtnis realisieren zu müssen.

        Wenn Du mit PHP arbeitest, dann sollten Sessions das sein, was Dir weiter hilft: Unter der Session-ID kannst Du die bereits abgesendeten Informationen auf dem Server temporär speichern und bei weiteren Übertragungen ergänzen.

        Was Du dann in Deinem Dialog-Konzept zusätzlich brauchst, das ist ein Button "Mail absenden", welche auf dem Server dann aus allen hochgeladenen Informationen die Mail zusammenbastelt.

        Auf diese Weise ist es egal, in welcher Reihenfolge die Bestandteile auf den Server wandern (jedes Teil könnte ja das letzte sein) - und wie viele Informationen es sind.
        Du mußt Dir lediglich eine (hinreichend flexible) Datenstruktur auf dem Server bauen und diese mit der Identität des Client, hier also der Session-ID, eidentig adressieren, um auf diese Weise mehrere HTTP-Requests ein gemeinsames Datenobjekt bauen zu lassen.
        Und diese Datenstruktur nach dem Absenden der Mail natürlich wieder abbauen.

        Achtung: Falls ein Anwender diesen Erstellungsprozeß auf halbem Weg abbricht, liegen auf dem Server "Trümmer" der angefangenen Mails herum.
        Es wäre also ratsam, solche Daten zusätzlich periodisch (cron?) nach einem entsprechenden Zeitintervall (Änderungsdarum > 1 Tag in der Vergangenheit?) zu vernichten.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        1. Hallo Alex & Michael,

          um das noch zu ergänzen: Du bräuchtest bei dieser Realisierung ja zwei Absende-Buttons in einem Formular: einen Button "Datei hochladen" und einen Button "E-Mail versenden". Das PHP-Skript muss dann unterscheiden können, weilcher Button angeklickt wurde. Das kannst du realisieren, indem du den beiden Submit-Buttons unterschidliche Namen zuweist:

          <input type="submit" name="uploadbutton" value="Datei hochladen" />
          <input type="submit" name="sendbutton" value="E-Mail versenden" />

          siehe: http://www.w3.org/TR/html4/interact/forms.html#successful-controls

          Du solltest allerdings auch wenn auf den "E-Mail versenden"-Button geklickt wurde überprüfen, ob nicht noch zusätzlich eine Datei hochgeladen wurde und diese dann mitversenden.

          Viel Erfolg,
          Robert

  2. Hi Alex,

    Ich habe zwei Formulare auf einer Seite.
    Beide Formulare können jedoch nicht zusammen abgeschickt werden.

    warum? Wer wertet diese Formulare aus?

    Wie bekomme ich das hin, dass ich das untere der beiden Formulare abschicken kann und die Daten in dem oberen erhalten bleiben?

    Getrennte Dokumente (Frames)?

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    1. warum? Wer wertet diese Formulare aus?

      Die Formulare werden von einem PHP-Skript ausgewertet.

      Getrennte Dokumente (Frames)?

      Nein, alles ein Dokument.