On 12/27/2010 10:42 AM, Ethan Rosenberg wrote:
> Jim -
>
> Thank you ever so much.
>
> At 01:58 PM 12/24/2010, you wrote:
>
>> Here you are using two different arrays. Yes, I know, they are basically the
>> same, but they are truly not the same. In your case, use $_POST
>>
>> >>>> This is what I used. As per your suggestion, I changed the == to ===.
>>> if(isset($_Request['Sex'])&& trim($_POST['Sex']) != '' )
>>> {
>>> if ($_REQUEST['Sex'] == "0")
>>> {
>>> $sex = 'Male';
>>> }
>>> else
>>> {
>>> $sex = 'Female';
>>> }
>>> }
>>
>> >>>> This defaults to Male. I do not always search the Sex field.
>> if ( empty($_POST['Sex']) )
>> {
>> $_POST['Sex'] = 'Male';
>> } else {
>> $_POST['Sex'] = 'Female';
>> }
>>
>> +++++++++++
>
>
> Now, here is the real puzzler....
>
> The purpose of this routine is to be able to have two(2) forms on one
> page,but
> not simultaneously.Additionally, l do not wish to call a separate program
> every
> time a new form is used. The assumption is that the second form depends on
> the
> entries in the first form. I realize this is not the case here.
>
> The age request and the kitten form both appear on the page together. How do
> I
> accomplish having them appear separately? If it requires Java Script or
> jQuery,
> what is the code to be used?
>
> Here is the code
> ==========
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
> <head>
> <title>Project 4-5: Age Calculator</title>
> </head>
> <body>
> <h2>Project 4-5: Age Calculator</h2>
> <?php
> // if form not yet submitted
> // display form
>
>
> if (!isset($_POST['dob']))
> {
>
> echo " <form method=\"post\" action=\"agecalc3.php\">";
> echo " Enter your date of birth, in mm/dd/yyyy format: <br />";
> echo " <input type=\"text\" name=\"dob\" />";
> echo " <p>";
> echo " <input type=\"submit\" name=\"submit\" value=\"Submit\" />";
> echo " </form>";
>
> }
> else
> {
> // if form submitted
> // process form input
>
>
> // split date value into components
> $dateArr = explode('/', $_POST['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.";
> }
>
> // SECOND FORM
>
> if (!isset($_POST['cat']))
> {
>
> echo " <form method=\"post\" action=\"agecalc3.php\">";
> echo " <br /><br />Enter your kitten's name: <br />";
> echo " <input type=\"text\" name=\"cat\" />";
> echo " <p>";
> echo " <input type=\"submit\" name=\"submit\" value=\"Submit
> Kitten\" />";
> echo " </form>";
> }
> else
> {
> $name_cat = $_POST['cat'];
>
> echo "Your Kitten is $name_cat";
> }
> ?>
>
> </body>
> </html>
> ===============
> Thanks again.
>
> Ethan
>
>
>
The key is to look at the value of the submit button. This needs to be unique.
Change around your logic a little and you will have it.
<?php
// if form not yet submitted
// display form
if ( isset($_POST['submit']) && $_POST['submit'] === 'Submit' ) {
// process form input
// split date value into components
$dateArr = explode('/', $_POST['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.";
} else if ( isset($_POST['submit']) && $_POST['submit'] === 'Submit Kitten' ) {
$name_cat = $_POST['cat'];
echo "Your Kitten is $name_cat";
} else {
echo <<<HTML
<form method="post" action="agecalc3.php">
Enter your date of birth, in mm/dd/yyyy format: <br />
<input type="text" name="dob" />
<input type="submit" name="submit" value="Submit" />
</form>
<br /><br />
<form method="post" action="agecalc3.php">
Enter your kitten's name: <br />
<input type="text" name="cat" />
<input type="submit" name="submit" value="Submit Kitten" />
</form>
HTML;
}
?>
Jim Lucas
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php