Multiple step form which consists of multiple steps or pages is useful sometimes. It allows you to create a form workflow and helps to make your web site user-friendly and flexible. For example, you can make different contents on next pages based on user inputs from previous pages.
The key things to make a form multiple pages are setting $form_state[‘rebuild’] and $form_state[‘storage’] variables in a submit function.
function example_form_submit($form, &$form_state) {
if($form_state['storage']['page'] == 1) {
$form_state[‘rebuild’] = TRUE;
$form_state[‘storage’][$page][‘values’] = $form_state[‘values’];
$form_state['storage']['page']++;
else {
//process the data
}
}