Formular Stück für Stück anzeigen lassen

Html

Erfahrenes Mitglied
Hallo ich bastel gerade ein Upload Script für Bilder. Bevor ich die Bilder auswähle muss eine Vorauswahl getroffen werden.
Und zwar soll zuerst ein Feld angezeigt werden in dem die Anzahl der Bilder festgelegt wird
->über einen Button "weiter" soll eine Auswahlliste hinzugefügt werden, mit der die Kategorie gewählt wird->und dann per Submit an das nächste Script geschickt werden.

Allerdings geht mir beim Klick auf "weiter" der Inhalt der Variable "AnzahlderBilder" flöten.

Wie kann man das lösen. Mir wäre es auch lieber wenn ich statt eines normalen Links einen Formular-Button verwenden könnte.

Hier mal mein code:

PHP:
<?php



echo "<form action='upload.php' method='POST'>";

echo "Geben Sie an wieviel Bilder Sie hochladen wollen: 
		<input name='anzahlderbilder' type='text' size='4' maxlength='2'></input>
		<a href=\"bilder.php?action=weiter\">weiter</a>
		<br/>";



If ( ($_GET['action'] =="weiter")){

echo "Kategorie:	<select name='kategorie'>
            		<option >Einsatz</option>
            		<option >Jugendfeuerwehr</option>
            		<option >Events</option>
            		</select>
					<br>";

}

echo"<input type=submit value='Submit'>"; 
echo "</form>";  

?>
 
Ja darauf bin ich auch schon gekommen. Nur das was ich gepostet habe war nur der Anfang. Es sollen noch mehrer Input-Felder nacheinander hinzugefügt werden. Habe es jetzt mal mit 3 ausprobiert, nur dann habe ich das Problem das mir das zweite immer durch das dritte ersetzt wird.

Aber das liegt wohl an meiner Abfrage welcher Button gedrückt wurde. Beim Klick auf "Schritt 3" wird die erste IF-Abfrage nicht mehr wahr sondern nur die zweite.

Wie lässt sich das verhindern. Möchte halt das sich das Formular fortlaufend mit Klick auf "Schritt xy" aufbaut.

Hier mein jetziger code versuch:

PHP:
<?php



echo "<form action='bilder.php' method='POST'>";

echo "Geben Sie an wieviel Bilder Sie hochladen wollen: 
		<input name='anzahlderbilder' type='text' size='4' maxlength='2' value='".$_POST['anzahlderbilder']."'></input>
		
		<br/>";

echo"<input type=submit value='Schritt 2' name='Weiter_2'>"; 
echo "</form>";  


if (isset($_POST["Weiter_2"])){


echo "<form action='bilder.php' method='POST'>";

echo "Kategorie:	<select name='kategorie'>
            		<option >Einsatz</option>
            		<option >Jugendfeuerwehr</option>
            		<option >Events</option>
            		</select>
					<br>";




echo "<input type='hidden' name='anzahlderbilder' value='".$_POST['anzahlderbilder']."'>";

echo"<input type=submit value='Schritt 3' name='Weiter_3'>"; 
echo "</form>";  




}

if (isset($_POST["Weiter_3"])){


echo "<form action='bilder.php' method='POST'>";


echo "Jahr:	<select name='jahr'>
            		<option >2005</option>
            		<option >2006</option>
            		<option >2007</option>
            		</select>
					<br>";

echo "<input type='hidden' name='anzahlderbilder' value='".$_POST['anzahlderbilder']."'>";
echo "<input type='hidden' name='anzahlderbilder' value='".$_POST['kategorie']."'>";

echo"<input type=submit value='Weiter_3' name='Weiter_3'>"; 
echo "</form>";  


}




?>
 
Anstatt:

PHP:
if (isset($_POST["Weiter_2"])){

einfach:

PHP:
if (isset($_POST["Weiter_2"]) || isset($_POST["Weiter_3"])){


Oder? Nicht schön aber selten.
 
Super, danke es funktioniert. Aber hast recht, schön ist es nicht.

Gäbe es noch eine andere Lösung?


mfg,Olli
 
Ich hätte das PHP-Skript und den HTML-Code getrennt und die validierung der Formular-Daten für jedes Formular einzeln abgearbeitet.
 
Du hast ein PHP-Skript welches die die eingegeben Daten prüft(Datenvalidierung). z.B. könnte man jetzt bei dir jede Datei hochladen die man will, das soll doch aber nur ein Bildupload sein wie ich das so sehe. Also müsstest du auf jeden Fall prüfen ob die Dateien auch vom Typ JPEG oder GIF sind, in welchen Dateiformat du halt deine Bilder hast.

Außerdem fügt das PHPSkript aus einzelnen Formularvorlagen das Formular zusammen und entscheidet welcher Teil des Fomrulars angezeigt wird und welcher nicht.

Aber da du erst am Anfang bist, kümmer dich erstmal um die Datenvalidierung.
 
Also, dann der code für den Upload steht bereits. Das was ich hier gepostet habe soll eine Vorauswahl sein, da mit diesem Script alle Bilder hochgeladen werden sollen.

Durch die Einträge im Formular sollen mir im letzten Schritt nur die Seiten angezeigt werden die infrage kommen. Dann wird die gewünschte Seite noch ausgewählt und ich springe auf die nächste Seite.

Dort erscheinen dann soviele File-Felder wie ich Bilder angegeben habe. Damit die Bilder in der DB richtig zugeordnet werden können, wird die ID der Seite, die im letzten Schritt ausgewählt wurde zusätzlich mitgespeichert.

Aber das funktioniert alles

Es geht mir nur um die Vorauswahl.

Dann noch etwas, auf der ersten Seite habe ich eine Button Löschen und Neu.

Bei Neu sollen alle Felder angezeigt werden, jedoch bei Löschen soll das Feld Anzahl übersprungen werden.


Außerdem fügt das PHPSkript aus einzelnen Formularvorlagen das Formular zusammen und entscheidet welcher Teil des Fomrulars angezeigt wird und welcher nicht.

Wie lässt sich das realisieren?


Hier mal ein Screenshoot wie das Formular schließlich vervollständigt aussehen soll:
 

Anhänge

  • upload.JPG
    upload.JPG
    22,9 KB · Aufrufe: 36
Zurück