What you need to do is submit from the page back to itself, then the $_POST array will be inherently available.
So set the default values for the form based on the contents of the $_POST, or if absent set them to the previous defaults from the database or wherever.
This is what I do universally- it works very well.
I've got a function on my Smarty class which assigns a field based on the $_POST if present, and takes a default value otherwise. This works very well.
Mark