Könner gefragt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Könner gefragt

    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:
    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>
    formStep2.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
        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>

  • #2
    Also ... das ist eigentliche eine Sache für Sessions ...
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      ...sehr übersichtlich...
      erstmal würde ich vpassthru() innerhalb der form aufrufen, und innerhalb der includes kannst du dir das sparen.
      ausserdem müssen die includes auch in die form... und die ganzen html- u. body-tags sollten aus den includes auch raus.
      aber wenn du dir mal den quelltext deines werkes im browser angesehen hättest, wärst du sicherlich auch
      allein darauf gekommen...
      eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

      Kommentar


      • #4
        Original geschrieben von slarti
        ...sehr übersichtlich...
        erstmal würde ich vpassthru() innerhalb der form aufrufen, und innerhalb der includes kannst du dir das sparen.
        ausserdem müssen die includes auch in die form... und die ganzen html- u. body-tags sollten aus den includes auch raus.
        aber wenn du dir mal den quelltext deines werkes im browser angesehen hättest, wärst du sicherlich auch
        allein darauf gekommen...
        "sehr übersichtlich" - war das ernst gemeint?

        "erstmal würde ich vpassthru() innerhalb der form aufrufen" - OK, danke

        "innerhalb der includes kannst du dir das sparen" - was bedeutet *innerhalb* ? innerhalb ist für mich include(); dies hier ist innerhalb ... include();

        "ausserdem müssen die includes auch in die form" - Ok, mach ich

        "und die ganzen html- u. body-tags sollten aus den includes auch raus" - wie ist das gemeint?!

        "aber wenn du dir mal den quelltext deines werkes im browser angesehen hättest" - hab ich! und wenn ich das ganze ohne localhost mache, sieht es seltsam aus, mit localhost bimborium sieht das alles so aus, wie ich es mir vorgestellt habe

        Vielen Dank für deine Tipps!

        Kommentar

        Lädt...
        X