verschachtelte HTML-Formulare - zwei "form-aktion" in einem Script - unmöglich

  • Hallo liebes Forum,

    ein wirklich schwieriges Problem, das nur von absoluten HTML-Freaks gelöste werden kann, nicht aber von mir :(

    Eingabe - Formular-1 (wie üblich über <form action=“……“ method=“POST“>
    Feld: „Anzahl Personen“, über Pull-Down auswählen und absenden (submit)
    Ergebnis – Formular-2 (wie üblich über <form action=“……“ method=“POST“>
    Ausgabe eines Formulars (mit Bezug aus „Anzahl Personen“ Formular-1) – die Dateninhalt kommen aus einer MySQL-Tabelle – und einem zusätzlichem Auswahlfeld pro Zeile
    Eingabe – Formular-2:
    Auswahl einer Zeile über Auswahlfeld
    (der Anwender entscheidet über die Feldinhalte der Zeilen, welche Zeile ausgewählt wird)
    Ein bestimmtes Datenfeld aus Formular-2 (der ausgewählten Zeile) wird genutzt, um eine andere MySQL-Tabelle zu lesen und die Daten dieser Tabelle zu aktualisieren.
    Und jetzt das Problem:
    Nach dem Aufruf von Formular-1 werden diverse INCLUDE-Module mit unterschiedlichen Aufgaben aufgerufen, bis dann das Formular-2 (ebenfalls über ein INCLUDE-Modul) aufgerufen wird. Die Verarbeitung läuft problemlos – aber … am ENDE des INCLUDE-Moduls (Formular-2) ist eine Rückkehr in den Hauptablauf (Formular-1) nicht möglich. Es erscheint immer eine völlig leere Seite zum Formular-2.
    Ein Hinweis nach langer Google-Suche:
    „verschachtelte Formularaufrufe sind in HTLM nicht möglich“ da die Feldinhalte von Submit-1 und Submit-2 nicht übermittelt werden können/dürfen.
    Ich hoffe, dass ich mein Problem ausreichend verständlich vorgetragen habe und hoffe, dass jemand eine Idee hat, wie ich diese Problematik lösen kann.
    Ich bin dankbar für jeden Lösungsansatz.

    Hier noch ein paar Zeilen zur Erklärung:

    [TABLE='width: 630']

    [tr][td]

    seite_1.php

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 4']<form action = "seite_2.php" method = "post">
    [/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td]


    [TD='colspan: 3']<select name="personen" size="1">[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td][/td]


    [TD='colspan: 2']<option>1</option>[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td][/td]


    [TD='colspan: 2']<option>2</option>[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    </select>

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td]


    [TD='colspan: 3']submit name="absenden"[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td]

    </form>

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td]

    seite_2.php

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 3']if (isset($_POST['absenden']))[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    INCLUDE

    [/td]


    [TD='colspan: 2']"auswahl_a.php"[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td]


    [TD='colspan: 3'](hier komme ich nicht wieder hin!!)[/TD]

    [td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 3']ENDE des Hauptprogramms[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr]


    [TD='colspan: 2']auswahl_a.php[/TD]

    [td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 5']<form action = "auswahl_b.php" method = "post">[/TD]

    [td][/td][td][/td][/tr][tr][td][/td][td][/td]


    [TD='colspan: 6']lesen Mysql-Tab und Ausgabe einer Tabelle mit WHILE (Anzahl Zeilen aus der Auswahl seite_1.php)[/TD]

    [/tr][tr][td][/td][td][/td]


    [TD='colspan: 4']pro Zeile ist ein Auswahlfeld vorhanden[/TD]

    [td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td]


    [TD='colspan: 2']Auswahl einer Zeile[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td]


    [TD='colspan: 3']submit name="anzeigen"[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td]

    </form>

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr]


    [TD='colspan: 2']auswahl_b.php[/TD]

    [td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 7']lesen und update einer MySQL-Tabelle mit der Auswahlzeile - auswahl_a.php[/TD]

    [/tr][tr][td][/td]


    [TD='colspan: 3']echo-Befehle funktionieren[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 3']Leere Seite wird zurückgegeben[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 4']kein Rücksprung nach auswahl_a.php[/TD]

    [td][/td][td][/td][td][/td][/tr][tr][td][/td][td]

    [/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][/tr][tr][td][/td]


    [TD='colspan: 3']ENDE des Unterprogramms[/TD]

    [td][/td][td][/td][td][/td][td][/td][/tr]


    [/TABLE]

    2 Mal editiert, zuletzt von hpuettma (29. September 2017 um 11:34)

  • ein wirklich schwieriges Problem, das nur von absoluten HTML-Freaks gelöste werden kann, nicht aber von mir :sad:


    Ein HTML-Freak wird dir da auch nicht helfen können, da dein Problem auf der PHP-Seite liegt.

    Stichwort: Session

  • Ich habe eine ganze Reihe von Session-Variablen im Gesamtablauf.
    die POST-Felder müssen ja normalerweise nicht über Session weitergegeben werden.
    Trotzdem werde ich das mal anpassen und mich wieder melden - dauert aber eine Weile.

    Nach einiger Vorarbeit habe ich mal die überarbeiteten Scripte mit SESSION-Variablen gepostet.
    Leider bisher mit dem gleichen Ergebnis wie vorher - die Steuerung funktioniert nicht.

    Ablauf: 1test.php

    Ablauf: 2test.php



    Ablauf: 3test.php


    Ablauf: 4test.php

    Ich werde es weiter probieren, diesen Ablauf funktionstüchtig zu coden.

    Noch ein Hinweis - der Aufruf: if (isset($_SESSION['auswahl'])) im Script: 4test.php
    wird NICHT durchlaufen, die Echo-Meldung zuvor wird ausgegeben.

    Hier nochmal das Script: 4test.php (der SESSION-Bereich habe ich ausgesternt)
    jetzt erhalte ich Fehlermeldungen.

    Die SESSION-Steuerung ist noch FALSCH!
    Es wird zwar kein Sytax-Fehler ausgegeben, trotzdem muss ich erst noch weitersuchen!

    5 Mal editiert, zuletzt von hpuettma (30. September 2017 um 21:45)

  • Problem gelöst! - der Hinweis von "Bandit" war sehr hilfreich.

    Hier nochmal der überarbeitete Ablauf mit den notwendigen SESSION-Befehlen:

    Script-1:

    Script-2:

    Script-3:

    Script-4:

    Hier die Ausgabe:

    Code
    SESSION_auswahl aus 1test.php in 2test.php: Daten absenden
          	          SESSION_auswahl aus MySQL-Tab - Zeilenauswahl in 3test.php: 11
          SESSION_gesendet in 2test.php: Daten absenden
         SESSION_auswahl in 4test.php: 11
    zurück aus 4test.php - Daten sind aufgebaut[COLOR=#ff0000]Die Dateneingabe wurde erfolgreich verarbeitet[/COLOR]

    Danke nochmal an "Bandit".

  • Warum nutzt du nicht einen Date/Time-Picker anstatt der Selects?

    Dein session_start geht doch in die Hose, da du vorher schon Ausgaben hast.

    Außerdem sind deine echo-Ralleys grausam, das geht schöner:

    16.14. Warum soll ich nicht SELECT * schreiben?
    http://home.mengelke.de/html-php-mysql…sql-select.html

    2 Mal editiert, zuletzt von Bandit (1. Oktober 2017 um 09:39)

  • Hallo Bandit,
    einen Date/Time-Picker habe ich nicht genutzt, da ich das Select-Problem gerne mit "Bordmitteln" selbst lösen wollte. Meine echo-Ralleys werden zukünftig auch besser aussehen.
    Danke nochmals.