On 1/4/2011 7:53 AM, Ethan Rosenberg wrote:
> At 03:45 AM 1/4/2011, you wrote:
>> Ethan,
>>
>> Ok, I would do this with what I would call wizard steps...
>>
>> On 1/3/2011 3:17 PM, Ethan Rosenberg wrote:
>>> Oooops - left out the text that was supposed to be in the quotes.
>>>
>>> Dear List -
>>>
>>> I would like to have two(2) forms in one PHP script. I would like to
>>> have the forms appear sequentially; ie, that the first form would
>>> appear, the data would be entered, and then the second form would
>>> appear, the data would be entered, and the script would exit.
>>>
>>> The code below displays both forms simultaneously. After the data is
>>> entered for the first form, the second form appears again. After the
>>> data is entered for the second form, the script displays the statement
>>> "Enter your date of birth, in mm/dd/yyyy format: " from the first form.
>>>
>>> Would you please help me correct the script so that it will perform as
>>> required.
>>>
>>> Thanks.
>>>
>>> Here is the code:
>>> ============
>>

To go back to what I originally wrote.  I found 1 error in the second form.
Here is the corrected form.

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html><body>
<?php

switch ( @$_POST['next_step'] )
{
    case 'step3':

    if ( empty($_SESSION['dob']) )
        die('DOB was not set in session...');

    $dateArr = explode('/', @$_SESSION['dob']);

    // calculate timestamp corresponding to date value
    $dateTs = strtotime($_POST['dob']);

    // calculate timestamp corresponding to 'today'
    $now = strtotime('today');

    // check that the value entered is in the correct format
    if ( sizeof($dateArr) != 3 )
        die('ERROR: Please enter a valid date of birth');

    // check that the value entered is a valid date
    if ( !checkdate($dateArr[0], $dateArr[1], $dateArr[2]) )
        die('ERROR: Please enter a valid date of birth');

    // check that the date entered is earlier than 'today'
    if ( $dateTs >= $now )
        die('ERROR: Please enter a date of birth earlier than today');
    // calculate difference between date of birth and today in days
    // convert to years
    // convert remaining days to months
    // print output
    $ageDays = floor(($now - $dateTs) / 86400);
    $ageYears = floor($ageDays / 365);
    $ageMonths = floor(($ageDays - ($ageYears * 365)) / 30);
    echo "You are approximately $ageYears years and $ageMonths months old.";

    break;
    case 'step2':
    $_SESSION['dob'] = @$_POST['dob'];
    echo <<<FORM
<form method="post" action="">
<input type="hidden" name="next_step" value="step3" />
Enter your kitten's name: <br />
<input type="text" name="cat" />
<input type="submit" name="submit" value="Submit Kitten" />
</form>
FORM;

    break;
    case 'step1':
    default:

    echo <<<FORM
<form method="post" action="">
<input type="hidden" name="next_step" value="step2" />
Enter your date of birth, in mm/dd/yyyy format: <br />
<input type="text" name="dob" />
<input type="submit" name="submit" value="Submit" />
</form>
FORM;
}
?>
</body></html>

If this isn't it, I think you should explain (in sudo code) exactly the steps
you are expecting things to.

Example sudo code

1.  display form 'A'
2.  Person enters dob and presses submit
3.  processing script stores dob submitted
4.  display form 'B'
5.  person enters name of kitten and presses submit
6.  processing script retrieves dob previously stored
7.  calculate age
8.  display age
...
10. What happen to the kitten???

Form 'A':
<form method="post" action="">
<input type="hidden" name="next_step" value="step2" />
Enter your date of birth, in mm/dd/yyyy format: <br />
<input type="text" name="dob" />
<input type="submit" name="submit" value="Submit" />
</form>

Form 'B':
<form method="post" action="">
<input type="hidden" name="next_step" value="step3" />
Enter your kitten's name: <br />
<input type="text" name="cat" />
<input type="submit" name="submit" value="Submit Kitten" />
</form>


Anyways, that is the idea.

Let us know.

Jim

> Please correct my errors.
> 
> Thanks again.
> 
> Ethan
> +++++++
> 
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to