forms saving fields so that user does not have to type again
Posted: Wed Dec 03, 2008 11:49 am
ok, i have this issue when user types in information in the form fields. but when if there is error with one of the fields when user types it wrong. then the all other fields go blank when error occurs. so if user type something wrong in one field. the other fields should keep the data unless if they are typed wrong as well. saving fields with php. any help is appreciated. i need help. please, help. thanks in advance 
Code: Select all
<?php
// Function to display form
function showForm($errorName=false,$errorEmail=false,$errorAddress=false,$errorCity=false,$errorLastName,$errorState,$errorZip,$errorPhone){
if ($errorName) $errorTextName = "Please enter your first name!";
if ($errorLastName) $errorTextLastName = "Please enter your last name!";
if ($errorCity) $errorTextCity = "Please enter a city!";
if ($errorEmail) $errorTextEmail = "Please enter a valid email address!";
if ($errorAddress) $errorTextAddress = "Please enter a address!";
if ($errorState) $errorTextState = "Please enter name of state!";
if ($errorZip) $errorTextZip = "Please enter zip code!";
if ($errorPhone) $errorTextPhone = "Please enter phone number!";
echo '<form action="index.php" method="POST"><table>';
// Display firstname field an error if needed
echo '<tr><td>First Name:</td><td><input type="text" name="name"></td></tr>';
if ($errorName) echo "<tr><td colspan='2'>$errorTextName</td></tr>";
// Display lastname field an error if needed
echo '<tr><td>Last Name:</td><td><input type="text" name="lastname"></td></tr>';
if ($errorLastName) echo "<tr><td colspan='2'>$errorTextLastName</td></tr>";
//display address field an error if needed
echo ' <tr><td>Address:</td><td><input type="text" name="address"></td></tr>';
if ($errorAddress) echo "<tr><td colspan='2'>$errorTextAddress</td></tr>";
// Display City field an error if needed
echo '<tr><td>City:</td><td><input type="text" name="city"></td></tr>';
if ($errorCity) echo "<tr><td colspan='2'>$errorTextCity</td></tr>";
// Display State field an error if needed
echo '<tr><td>State:</td><td><input type="text" name="state"></td></tr>';
if ($errorState) echo "<tr><td colspan='2'>$errorTextState</td></tr>";
// Display zip field an error if needed
echo '<tr><td>Zip:</td><td><input type="text" name="zip"></td></tr>';
if ($errorZip) echo "<tr><td colspan='2'>$errorTextZip</td></tr>";
// Display phone number field an error if needed
echo '<tr><td>Phone:</td><td><input type="text" name="phone"></td></tr>';
if ($errorPhone) echo "<tr><td colspan='2'>$errorTextPhone</td></tr>";
// Display email field an error if needed
echo '<tr><td>Email:</td><td><input type="text" name="email"></td></tr>';
if ($errorEmail) echo "<tr><td colspan='2'>$errorTextEmail</td></tr>";
echo '<tr><td><input type="submit" name="SubmitForm" value="Send"></td></tr>';
echo '<form>';
}
if (!isset($_POST['SubmitForm'])) {
showForm();
} else {
//Init error variables
$errorName = false;
$errorLastName = false;
$errorAddress = false;
$errorCity = false;
$errorState = false;
$errorZip = false;
$errorPhone = false;
$errorEmail = false;
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$lastname = isset($_POST['lastname']) ? trim($_POST['lastname']) : '';
$address = isset($_POST['address']) ? trim($_POST['address']) : '';
$city = isset($_POST['city']) ? trim($_POST['city']) : '';
$state = isset($_POST['state']) ? trim($_POST['state']) : '';
$zip = isset($_POST['zip']) ? trim($_POST['zip']) : '';
$phone = isset($_POST['phone']) ? trim($_POST['phone']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) $errorEmail = true;
if (strlen($name)<3) $errorName = true;
if (strlen($lastname)<3) $errorLastName = true;
if (strlen($address)<1) $errorAddress = true;
if (strlen($city)<1) $errorCity = true;
if (strlen($state)<1) $errorState = true;
if (!eregi("^[0-9]{5}(\-[0-9]{4})?$", $zip)) $errorZip = true;
if (!eregi("^[0-9]{10}$", $phone)) $errorPhone = true;
// Display the form again as there was an error
if ($errorName || $errorEmail || $errorAddress || $errorCity || $errorLastName || $errorState || $errorZip || $errorPhone)
{
showForm($errorName,$errorEmail,$errorAddress,$errorCity,$errorLastName,$errorState,$errorZip,$errorPhone);
} else {
echo header('Location: index.html');
}
}
?>