Nie wiem czy dobrze rozumiem, chodzi Ci o zbieranie danych w krokach, ale to co napisałeś jak dla mnie trochę nie trzyma się kupy :-). Dzieląc na kroki najprościej będzie zrobić kilka osobnych formularzy i zamknąć je np. w funkcje.
<?php
function formularz1() {
echo '<form action="" method="post"> <input type="text" name="dane1" />
<input type="text" name="dane2" />
<input type="hidden" name="krok" value="krok2" />
<input type="submit" name="Dalej >>" />
</form>';
}
function formularz2( $dane1, $dane2 ) {
echo '<form action="" method="post"> <input type="text" name="dane3" />
<input type="text" name="dane4" />
<input type="hidden" name="dane1" value="'.$dane1.'" />
<input type="hidden" name="dane2" value="'.$dane2.'" />
<input type="hidden" name="krok" value="krok3" />
<input type="submit" name="Dalej >>" />
</form>';
}
function formularz3( $dane1, $dane2, $dane3, $dane4 ) {
echo '<form action="" method="post"> <input type="text" name="dane5" />
<input type="text" name="dane6" />
<input type="hidden" name="dane1" value="'.$dane1.'" />
<input type="hidden" name="dane2" value="'.$dane2.'" />
<input type="hidden" name="dane3" value="'.$dane3.'" />
<input type="hidden" name="dane4" value="'.$dane4.'" />
<input type="hidden" name="krok" value="krok4" />
<input type="submit" name="Wyślij" />
</form>';
}
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
if( $_POST['krok'] == "krok2" ) {
formularz2( $_POST['dane1'], $_POST['dane2'] );
} elseif( $_POST['krok'] == "krok3" ) {
formularz3( $_POST['dane1'], $_POST['dane2'], $_POST['dane3'], $_POST['dane4'] );
} elseif( $_POST['krok'] == "krok4" ) {
//Kończy zbieranie danych w krokach i można je przesłać np. do bazy danych ...
//Dostępne wartości pól formularza są w zmiennych:
//$_POST['dane1'], $_POST['dane2'], $_POST['dane3'], $_POST['dane4'], $_POST['dane5'], $_POST['dane6']
}
} else {
formularz1();
}
?>
Zrobiłem to na szybko i nie testowałem ale raczej powinno być ok, w razie problemów pisz.