Formular auf mehrere Seiten verteilen

themonk

Erfahrenes Mitglied
Hallo
wie kann man ein Formular auf mehre Seiten verteilen z.B. auf 2 Seiten und das es bei der 3. seite abgeschickt wird? geht das irendwie mit hidden oder so?
 
Hier empfehle ich dir den Gebrauch einer serverseitigen Programmiersprache, wie etwa PHP. Dort ist das Verarbeiten bzw. Übertragen von Daten über mehrere Seite mit sog. Sessions relativ einfach.
 
Bei nur HTML nicht so einfach, aber es gibt Möglichkeiten:

Daten / per Variable im Link mitgeben ( vermutlich nicht realisirebar aufgrund der Menge der Daten )

Daten in einem Cokkie zwischenspeichern und später in Hidden Feldern wieder ausgeben ( versagt, wenn cokkies deaktiviert sind )

Daten in einem nicht sichtbaren Frame/Iframe zwischenspeichern!


oder eben PHP und Session einsetzen!
 
Dann löse es doch auf eine der drei möglichen HTML Lösungen oder stell eine konkrete PHP Frage zum Problem, ich verschiebe den Beitrag dann auch gerne in den Bereich PHP!

LG Thomas
 
Die drei Möglichkeiten mittels HTML halte ich für fragwürdig:
  • Übergabe per URL: Nicht nur die limitierte Datenmenge, sondern auch die fehlende Datensicherheit sollten diese Variante ausschließen.
  • Übergabe per Cookie: Neben der Möglichkeit, dass der Benutzer Cookies deaktiviert hat, sollte auch die Möglichkeit der Datenmanipulation durch den Benutzer diese Variante nicht in den nähere Auswahl rücken.
  • Übergabe per Frame: Wie sollen die Daten dort zwischengespeichert werden, mit Javascript? Was ist, wenn der Benutzer auch dies deaktiviert hat?
 
Original geschrieben von Gumbo
Die drei Möglichkeiten mittels HTML halte ich für fragwürdig:
  • Übergabe per URL: Nicht nur die limitierte Datenmenge, sondern auch die fehlende Datensicherheit sollten diese Variante ausschließen.
  • Übergabe per Cookie: Neben der Möglichkeit, dass der Benutzer Cookies deaktiviert hat, sollte auch die Möglichkeit der Datenmanipulation durch den Benutzer diese Variante nicht in den nähere Auswahl rücken.
  • Übergabe per Frame: Wie sollen die Daten dort zwischengespeichert werden, mit Javascript? Was ist, wenn der Benutzer auch dies deaktiviert hat?

Das habe ich auch nie in Frage gestellt, aber wenn zum Beispiel kein PHP oder andere serverseitige Sprachen zur Verfügung stehen, gibt es auch keine andere Möglichkeit, womit Lösung 2 und 3 immernoch eine passable Lösung sind, die aucvh noch häufig im Netzt Einsatz finden.

Zu 3:

Man speichert die Daten in einem "nicht sichtbaren" FRame in hidden Inputs zwischen und überträgt diese so und liest die Values der Inputs anschließend wieder aus, diese wieder in Hiden Inputs speichern um dann alle Werte gemeinsam zu übertragen!

Die PHP Lösung ist zwar eleganter, aber durchaus nicht immer verfügbar.

Frames auschalten? Kenne ich keine Möglichkeit, ausser alte Browser die diese Technik nicht kennen!
 
Thomas Lindner kannst den beitrag gern in PHP verschieben
ich habe jetzt folgendes gemacht ich habe ein Formular wo dann druch page=nummer verschieden daten aus der Datenbank ausgelesen werden das Formular und die Session regestrierung sieht so aus

PHP:
<?php
$proseite=2;
$number=10;


$start=$_GET['page'] * $proseite;
$seiten=ceil($number/$proseite);

if ($_GET['page']<$seiten) {
    $i=$_GET['page']+1;

        echo "<form name='Formular'  action='seite.php?page=".$i."' method='post'   <table border=0 width=100% cellspacing=0 cellpadding=0>";

    $sqlkommando = "SELECT * FROM tabelle ORDER BY id ASC LIMIT $start,$proseite";


    $sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error()); 

    while($daten = mysql_fetch_object($sqlanfrage)) 


  {echo " <tr><td align=right> ".stripslashes($daten->frage1).":</td><td><input type=text name=q".stripslashes($daten->id)."  maxlength=20></td>    </tr>";
echo "<input type=text name=id value=".stripslashes($daten->id)." maxlength=20>";

 }
	echo "<tr>
    <td colspan=2 align=center><input type=reset value=Löschen><input type=submit value=Anmelden></td>
   </tr>
  </table>
 </form>";}
	?>

	<?php
    $sqlkommando = "SELECT id FROM tabelle";

      $sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());

    while($daten = mysql_fetch_object($sqlanfrage))
    {
    	session_start ();

	$_SESSION["q".stripslashes($daten->id).""] = $_POST["q".stripslashes($daten->id).""];

	?>


<?php echo $_SESSION["q".stripslashes($daten->id).""]; 	 }?>
jetzt wird das Formular von seite.php?page=0 an seite.php?page=1 geschickt und unten wird der Inhalt der Sessions angezeigt nur´, wenn ich das Formular auch weitergebe an seite.php?page=2 dann stehen da nur die dinge aus dem Formular der vorherigen Seite also von seite.php?page=1
 
Zuletzt bearbeitet:
Zurück