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