dynamische Formulaverarbeitung

counteract

Erfahrenes Mitglied
Hallo!

Vielleicht hat ja einer ne Idee...

Problemstellung:

Ich habe eine Formularverarbeitung geschrieben, die über mehere Seiten geht.
Nun habe ich das Ziel das die Eingaben die auf den Formularseiten gemacht werden wieder ausgegeben werden.
Um sie gegebenenfalls nocheinmal zu bearbeiten, jedoch weis man nicht wieviele Seiten der User vorher ausgefüllt hat.

Somit muss die Seite auf der er seine Daten bearbeiten kann dynamisch sein! Also es sollen nur die Daten und deren Formuare in die Seite rein die er auch ausgefüllt hat!

Jedoch finde ich momentan keinen wirklichen Ansatz zu diesem Problem...
Weis jemand wie man soetwas realisieren kann?

MfG

Counteract
 
Ich arbeite bei der gesamten Formularverarbeitung schon mit Sessions! Mein Problem ist einfach nur das ich nich weis wie ich diese Bearbeitungsseite so mache das nur diese Daten die eingeben wurden in der Seite auftauchen.

Versteht man mein Problem? :rolleyes:
 
Jedes deiner Inputs brauchen einen einzigartigen Bezeichner.
Und danach arbeitest du dich durch.

PHP:
foreach($_SESSION as $key => $value) {
  echo $key.' <input type="text" name="'.$key.'" value="'.$value.'" />';
}

Allerdings würde ich dir raten, es in einem Unterarray zu speichern, also z. B. in $_SESSION['form'] o. ä. damit keine anderen Daten ausgegeben werden.
 
Du hast also auf mehreren Seiten deine Formulare.

Seite1.php
PHP:
<form xxx action="seite2.php">
<input xxx name="bla">
<input xxx name="blub">
</form>

Auf jeder nachfolgenden Seite werden die $_POST Daten in $_SESSION gespeichert.

Seite2.php
PHP:
<?php
foreach($_POST as $key => $value) {
  if(!empty($value)) {
    $_SESSION['form'][$key] = $value;
  }
}
?>
Und hier das nächste Formular.

Und am Ende dann:

Zusammenfassung.php
PHP:
<form xxx action="auswertung.php">
<?php
foreach($_SESSION['form'] as $key => $value) {
  echo $key.' <input type="text" name="'.$key.'" value="'.$value.'" />';
}
?>
</form>

Und dann wie gewohnt deine Auswertung des Formulars.
 
Ja, bisher werden auch bei meiner Verarbeitung die POSt Daten in die Session geschreiben, also soweit ist das klar.

Kannst du mir vielleicht noch erklären was dieser Code zu bedeuten hat? Ich komme damit noch nich so ganz zu recht, leider...

PHP:
<?php
foreach($_POST as $key => $value) {
  if(!empty($value)) {
    $_SESSION['form'][$key] = $value;
  }
}
?>

PHP:
<form xxx action="auswertung.php">
<?php
foreach($_SESSION['form'] as $key => $value) {
  echo $key.' <input type="text" name="'.$key.'" value="'.$value.'" />';
}
?>
</form>

Irgendwie versteh ich das nich so richtig mit dem key!

Vielen vielen DANK schonmal für deine Hilfe!
 
[phpf]foreach[/phpf]

$key ist der Array Bezeichner (also $array[KEY]) und $value ist der Inhalt vom jeweiligen Key.
 
Leider hab ich noch ne kleine Frage! Und zwar funktioniert das dann auch so dass nur die Daten und Formularfelder ausgegeben werden die der User auch ausgefüllt hat?

Weil wenn man alle diese "Zeilen" in die Anweisung schreibt müsste er doch dann alle Formlare zwar anzeigen jedoch dann ohne inhalt wenn man sie vorher nicht ausgefüllt hat oder?
PHP:
echo $key.' <input type="text" name="'.$key.'" value="'.$value.'" />';
 
PHP:
<?php
foreach($_POST as $key => $value) {
  if(!empty($value)) {
    $_SESSION['form'][$key] = $value;
  }
}
?>
Durch diese kleine Schleife werden nur Daten in die Session geschrieben, die nicht leer sind.
 
Zurück