Fabian: (PHP) Formular in Formular umgehen können?

Hallo Forum Gemeinde,

ich habe noch einmal ein kleines Programmierproblem. Vielleicht hast du ja einen Lösungsweg oder auch eine Lösung für dieses Problem.

Ich habe eine html Seite, in welcher der User seine persönlichen Daten eingeben kann. Das habe ich mit einem Formular gelöst, welches über die ganze Seite geht.

Am Ende gibt es ein Button speichern oder abbrechen.

Nun würde ich dem User gern die Möglichkeit bieten, ein Bild upzuloaden. Dazu habe in in mitten des Formulares ein Platzhalterbild "Bild upload hier klicken" eingefügt.

Klickt der User dieses Platzhalterbild an, erscheint eine neue Seite, auf der das Bild upgeloaden werden kann. Geht der User per Schaltfläche "zurück" dann wieder auf die Eingabeseite zurück, sind jedoch alle zuvor eingegebenen Daten verschwunden.

Daher dachte ich mir, speichere ich die Daten, bevor der user auf die Upload Seite gelinkt wird, in der Datenbank ab.

Das würde meines Wissens sehr gut funktionieren, wenn ich das Bild einfach als Form definiere und bei Klick ein Submit zum Speichern durchführe:

<form action="anzeigentemplates/upload.php" method="post"><input type="image" src="logo.gif" value="submit">
</form>

Leider kann ich diese Form-Tag zum Bildupload innerhalb der Form zum eingeben der persönlcihen Daten nicht definierten.

Eine andere Möglichkeit sehe ich leider nicht. Oder ginge das mit Java-Sript? (on klick, speichere alles in MYSQL ab und gehe dann auf die Seite upload.php)?

Für eine Antwort oder auch nur einen Tipp währe ich sehr dankbar.

die besten Grüße aus Braunschweig

Fabian

  1. Lösung1:
    Öffne die Bild-Upload-Seite in einem neuen Fenster

    Lösung2:
    <img src.... alt... onClick="Hauptformular.ParameterWasDanachFürNeSeiteKommtAlsHidden="PIC";Hauptformularname.submit();">
    Du hast in deinem Riesenformular ein HiddenFeld wodrin du speicherst ob als nächstes nur eine Danke-Seite kommen soll oder die Bildupload-Seite. Dann Submittest du das Hauptformular.

    Lösung3:
    Wenn du keine RESET-Button zur Verfügung stellst, bleiben AFAIK die Formularinhalte beim Betätigen von ZURÜCK erhalten.

    1. Hallo Julian,

      danke für die schnelle Antwort.

      Die Lösungen haben es ja wirklich in sich! Ich werde sie erstmal ausdrucken und in Ruhe studieren.

      Aber damit werden ich es wohl auf jeden Fall nun endlich hinbekommen...

      Danke und Grüße aus Braunschweig

      Fabian

    2. Hallo Julian,
      deine Lösungen sind wirklich Klasse. Aus den verschiedenen Gründen würde ich mich für Lösung 2 entscheiden...

      Lösung1:
      Öffne die Bild-Upload-Seite in einem neuen Fenster

      Das ist eine gute Idee, doch wenn ich dann das Fenster wieder schließe, wird das Platzhalterbild duch das neue Bild nicht ersetzt.Das wäre schon sehr schön.

      Lösung3:
      Wenn du keine RESET-Button zur Verfügung stellst, bleiben AFAIK die Formularinhalte beim Betätigen von ZURÜCK erhalten.

      Ich habe vergessen zu sagen, dass das Formular selbst per include aufgerufen wird. Ich glaube deswegen sind auch die Eingaben immer wieder verschwunden.

      Lösung2:
      <img src.... alt... onClick="Hauptformular.ParameterWasDanachFürNeSeiteKommtAlsHidden="PIC";Hauptformularname.submit();">
      Du hast in deinem Riesenformular ein HiddenFeld wodrin du speicherst ob als nächstes nur eine Danke-Seite kommen soll oder die Bildupload-Seite. Dann Submittest du das Hauptformular.

      Die Lösung hört sich super an, leider scheitert es bei mir etwas an der Durchführung. Ich habe von Java Skript so gut wie keine Ahnung...
      Insbesondere das AlsHidden kann ich nicht deuten.

      Wenn ich das so richtig verstanden habe, füge ich ein Bild ein:
      <img src="logo.gif" onClick="form.'upload.php'as hidden="PIC";form.submit();">

      Klickt man nun auf das Platzhalterbild wird das Haupformular Submittet und damit die Werte gespeicht und man kommt auf die Upload seite.
      Klickt man auf den Button Speichern. Wird das Formular ebenfalls gespeicht und man kommt auf die Danke Seite.

      Ist das so generell richtig?

      Vielen Dank für deine Ausdauer...

      Grüße aus Braunschweig

      Fabian

    3. Moin

      Lösung2:
      <img src.... alt... onClick="Hauptformular.ParameterWasDanachFürNeSeiteKommtAlsHidden="PIC";Hauptformularname.submit();">
      Du hast in deinem Riesenformular ein HiddenFeld wodrin du speicherst ob als nächstes nur eine Danke-Seite kommen soll oder die Bildupload-Seite. Dann Submittest du das Hauptformular.

      Warum mit JavaScript wenn es auch ohne geht? <input type="image" name="hochladen" value="tues" src="bla" alt="bli"> hat etwa den selben Effekt und funktioniert immer. (Das wäre auch die richtige (tm) Lösung für dieses Problem)

      Übrigens würde ich vorschlagen die vom User eingegebenen Daten nur auf der Upload-Seite als hidden-Felder einzutragen und sie so mitzuschleppen. Gleich alles in die Datenbank zu knallen ist imho nicht der richtige Weg (es mag Ausnahmen geben). Oder noch besser, gleich das Upload-Feld auf die Seite mit den Dateneingaben zu machen.

      --
      Henryk Plötz
      Grüße aus Berlin