Hallo!
Ich versuche mich gerade an Formularen, die auf mehrere Seiten aufgeteilt sind. Dabei sollen die Daten der vorhergehenden Formulare nicht verloren gehen. Aber irgendwie klappt bei mir nur, dass der aktuelle "Schritt" erhalten bleibt, also quasi auf welchem der Formulare man sich befindet. Wenn das geht, dann sollte es eigentlich auch möglich sein, die Formular-Daten ebenso wie den "Schritt" behalten zu können.
Ziel ist ein Formular, bei dem man durch die einzelnen Seiten vor und zurück blättern kann und die einmal eingegebenen Daten nicht verloren gehen.
Mein Vorgehen:
Man startet mit formStepStart.htm
und diese included je nach Schritt die aktuelle Seite. Der Schritt wird deshalb auch immer mitgeschliffen, weil er ja als hidden bereits definiert ist. Die anderen Variablen, wie z.B. $betreff werden in den einzelnen Formularen definiert, sollen aber laut Tutorial mit vpassthru() mitgeschleift werden. Aber genau DAS klappt nicht.
Wo ist denn nur der FEhler?
Die Dateien sind:
formStem1.htm:
func.php aus den Tutorials:
formStep2.htm:
formStepStart.htm:
Ich versuche mich gerade an Formularen, die auf mehrere Seiten aufgeteilt sind. Dabei sollen die Daten der vorhergehenden Formulare nicht verloren gehen. Aber irgendwie klappt bei mir nur, dass der aktuelle "Schritt" erhalten bleibt, also quasi auf welchem der Formulare man sich befindet. Wenn das geht, dann sollte es eigentlich auch möglich sein, die Formular-Daten ebenso wie den "Schritt" behalten zu können.
Ziel ist ein Formular, bei dem man durch die einzelnen Seiten vor und zurück blättern kann und die einmal eingegebenen Daten nicht verloren gehen.
Mein Vorgehen:
Man startet mit formStepStart.htm
und diese included je nach Schritt die aktuelle Seite. Der Schritt wird deshalb auch immer mitgeschliffen, weil er ja als hidden bereits definiert ist. Die anderen Variablen, wie z.B. $betreff werden in den einzelnen Formularen definiert, sollen aber laut Tutorial mit vpassthru() mitgeschleift werden. Aber genau DAS klappt nicht.
Wo ist denn nur der FEhler?
Die Dateien sind:
formStem1.htm:
func.php aus den Tutorials:
PHP-Code:
<?function vpassthru()
{
global $HTTP_POST_VARS, $HTTP_GET_VARS;
reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS))
echo "<input type=hidden name='".$key."' value=\"". htmlspecialchars( stripslashes($val))."\">";
reset ($HTTP_GET_VARS);
while (list ($key, $val) = each ($HTTP_GET_VARS))
echo "<input type=hidden name='".$key."' value=\"". htmlspecialchars( stripslashes($val))."\">";
} ?>
PHP-Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hier die Eingaben für Schritt EINS (BETREFF)<br>
<?php echo '<input type="text" name="betreff" value="'.$betreff.'">';
vpassthru();
?>
</body>
</html>
PHP-Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
vpassthru();
echo "Die Eingabe von Schritt 1 war: ".$betreff;
?>
<br>
Dies ist Schritt Zwei <br>
<?php echo '<input type="text" name="nachricht" value="'.$nachricht.'">'; ?>
</body>
</html>
formStepStart.htm:
PHP-Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
include ("func.php");
vpassthru();
echo "Wir sind bei Schritt Nr: ".$schritt." ENDE <br><br><br>";
switch ($schritt) {
case "":
include("formStep1.htm");
$schritt="2";
break;
case "2":
include("formStep2.htm");
break;
}
?>
<form name="form1" method="post" action="<?php print $PHP_SELF; ?>">
<input type="submit" name="Abschicken" value="Abschicken">
<br>
<?php echo '<input type="text" name="schritt" value="'.$schritt.'">'; ?>
</form>
</body>
</html>
Kommentar