Is there a way to save the form data so that if the submit fails they don’t have to retype everything? For some reason, I’m getting an error on my script with Chrome but not with FireFox. It doesn’t always happen with Chrome, and it’s not exactly the main problem. If they submit and then the page doesn’t load, they lose everything they typed when they go back. I’ve thought of only one thing so far, but it doesn’t seem practical. It would be to save the form data to cookies when they press submit.
Is there a better way?
It depends on what you mean by “submit fails.” If you mean that there is a server error, and they have to press ‘back’, it’s hard.
However, if you mean fails as in a they-forgot-to-put-an-email kind of fails, here is one solution:
You can grab the previous values from the $POST or wherever and stick them back into the HTML tags. For instance:
Edit: For the server thing, the cookie hack may be the best. Here is another hack idea: You could modify your 500 server error page to have a button on it that says “go back to form”, which would only show up in the event that this $_POST data was just went. The button would actually be submitting an identical form where every is type=hidden. This data would then get transferred to the previous page and stuffed in as above.
A third hack would be to load the page in an iframe, and have the success page jump out of the iframe. The server error would not do that. Then use Javascript onSubmit to detect that something has gone wrong, or just hope that the user notices nothing happened and clicks “submit” again.