You do not need to use javascript.
Simple create a form that submits to itself. And check the values, then
reprint the form or redirect.
Example:
<?php
if ($REQUEST_METHOD == "POST") {
$required = array ("surname", "age");
$err_msg = "";
while (list ($key) = each ($required)) {
if (!$HTTP_POST_VARS["$key"]) {
$err_msg .= "Please enter a value for $key<br>\n";
}
}
if (!empty($err_msg)) print $err_msg;
}
?>
<form action="<?= $PHP_SELF ?>" method="POST">
<input type="text" name="surname" value="<?= $surname ?>"><br>
<input type="text" name="age" value="<?= $age ?>">
<input type="submit" name="Submit">
</form>
Hope that helps,
-- Stewart
On Mon, 18 Feb 2002, George Whiffen wrote:
> Jason,
>
> You didn't mention Javascript checks.
>
> Personally I really dislike having to wati for a page to reload before finding
> out that I've just failed to fill in a field. The Javascript to do basic
> on-page checks is all pretty simple stuff.
>
> Of course this doesn't mean we can skip checking the data again in the php!
> Javascript might be switched off, we might have a bug in the Javascript (easy to
> do), or we (or someone else) might want to simulate form entry via a url link.
> It's also quite likely that there may be checks e.g. checks for duplicate
> entries, which cannot be done on a form.
>
> Here's some skeleton code that handles a basic form with both php and javascript
> checks, (I've deliberately tried to keep the php/Javascript as similar as
> possible). You can try it at http://www.whiffen.net/simple.php if you want.
>
> *** simple.php***
> <SCRIPT LANGUAGE="php">
>
> if (isset($surname))
> {
> $errormessage = "";
>
> if ($surname == "")
> {
> $errormessage = $errormessage . "<br>You must enter a value for surname";
> }
>
> if ($age <= 0 or $age != floor($age))
> {
> $errormessage = $errormessage . "<br>Age must be a whole number";
> }
>
> if ($errormessage == "")
> {
> // do whatever you have to with the data and maybe finish with
> // a redirect to a success page
> }
> }
>
> print '
> <HTML>
> <HEAD>
> <SCRIPT LANGUAGE="javascript">
> function check()
> {
> var message = "";
> if (document.myform.surname.value == "")
> {
> message = message+"\nYou must enter a value for surname";
> }
> if (document.myform.age.value != parseInt(document.myform.age.value))
> {
> message = message+"\nAge must be a whole number";
> }
> if (message != "")
> {
> alert("You have the following errors to correct:"+message);
> return false;
> } else {
> return true;
> }
> }
> </SCRIPT>
> </HEAD>
> <BODY>
> <H1>MY FORM</H1>
> <FORM name=myform method=post onSubmit="return check();">
> ';
> if ($errormessage != "")
> {
> print 'You have the following errors to correct'.$errormessage.'<BR>';
> }
> print '
> Surname:
> <INPUT TYPE=TEXT NAME="surname" VALUE="'.$surname.'">
> <BR>
> Age:
> <INPUT TYPE=TEXT NAME="age" VALUE="'.$age.'">
> <BR>
> <INPUT TYPE=SUBMIT>
> <BR>
> <A HREF="'.$SCRIPT_NAME.'s">Source</A>
> </FORM>
> </BODY>
> </HTML>
> ';
> </SCRIPT>
>
> You'll see that http://www.whiffen.net/simple.php?surname=whiffen&age=23.2 works
> perfectly well too.
>
> Personally, I'm not a huge fan of Javascript. It always seems to be much more
> trouble than php for some reason, but it has its place, (as long as you never
> rely on it!).
>
> George
>
> Jason Dulberg wrote:
>
> > I am working on some error trapping for several forms on my site. After
> > visiting a bunch of websites, I've noticed 2 common methods of displaying
> > error messages.
> >
> > 1. display an error box on a new page and force the user to hit the <back>
> > button
> >
> > 2. display the form again with appropriate error text and pre-filled fields.
> >
> > I have part of the error on the new page working but I'm running into the
> > infamous no contents in the form after going <back>.
> >
> > There are some useability issues with forcing the user to hit the back
> > button -- some just don't want to bother.
> >
> > Is there a way to display the form w/original contents and error messages
> > 'without' having to code the entire form twice? I have about 5 forms with 50
> > fields or so each.
> >
> > What would be the best way to go about redrawing the form with the errors
> > shown beside each field?
> >
> > Any suggestions are greatly appreciated.
> >
> > __________________
> > Jason Dulberg
> > Extreme MTB
> > http://extreme.nas.net
>
>
>
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php