wizardExample.php
<?php
/**
* Wizard Example
* wizardExample.php
* Demonstrate how session variables might be used to facilitate a multi-page web form.
*/
require_once('FormWizard.class.php');
$survey = new FormWizard('survey');
$totalSteps = 3;
$heading = '';
$fstep = $_POST['fstep'];
foreach($_POST as $key=>$value) {
// run some validation here ...
// ...
// store to session...
$survey->$key = $value;
}
if($fstep == 0) { // form validated and done
// process completed wizard
echo '<pre><code>'.print_r($_SESSION,true).'</code></pre>'; }
} else {
$fstep = 1;
}
echo '<pre>POST: <code>'.print_r($_POST,true).'</code></pre>'; echo '<pre>SESSION: <code>'.print_r($_SESSION,true).'</code></pre>';
if($fstep > 0) {
$heading = sprintf('Step %d of %d', $fstep, $totalSteps); } else {
$heading = 'Finished';
}
echo "<h1>$prompt</h1>";
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<?php
$disable = 'disabled="DISABLED"';
if($fstep > 1) {
$disable = "";
}
echo '<button type="submit" name="fstep" value="'.($fstep - 1).'" '.$disable.'>Back</button>';
if($fstep < $totalSteps) {
echo '<button type="submit" name="fstep" value="'.($fstep + 1).'">Forward</button>';
} else {
echo '<button type="submit" name="fstep" value="0">Finish</button>';
}
/**
* The forms:
*/
switch($fstep) {
case '1' :
?>
<div class="row"><label for="q1">Question 1</label><input type="text" name="q1" value="<?php echo $survey->q1;?>"></div>
<div class="row"><label for="q2">Question 2</label><input type="text" name="q2" value="<?php echo $survey->q2;?>"></div>
<div class="row"><label for="q3">Question 3</label><input type="text" name="q3" value="<?php echo $survey->q3;?>"></div>
<?php
break;
case '2' :
?>
<div class="row"><label for="q4">Question 4</label><input type="text" name="q4" value="<?php echo $survey->q4;?>"></div>
<div class="row"><label for="q5">Question 5</label><input type="text" name="q5" value="<?php echo $survey->q5;?>"></div>
<div class="row"><label for="q6">Question 6</label><input type="text" name="q6" value="<?php echo $survey->q6;?>"></div>
<?php
break;
case '3' :
?>
<div class="row"><label for="q7">Question 7</label><input type="text" name="q7" value="<?php echo $survey->q7;?>"></div>
<div class="row"><label for="q8">Question 8</label><input type="text" name="q8" value="<?php echo $survey->q8;?>"></div>
<div class="row"><label for="q9">Question 9</label><input type="text" name="q9" value="<?php echo $survey->q9;?>"></div>
<?php
break;
}
?>
</form>