There are ways to return to the originating page, with the originally submitted data restored to the form, and an appropriate message. Basically, you use the same page for your form and for the destination, just using "if" conditions to determine if the form has been submitted yet, display the form if not, process the input if yes, and display the form (pre-loaded with the user’s input) with error message if yes but with errors. The FlexSearchForm snippet is an excellent example of this.
Then there is "Ajax", an old (actually Microsoft) Javascript technology with a catchy new name and more tutorials than you can shake a stick at now that it’s become popularized. In this, the Javascript XMLHttpRequest object takes your data, calls the PHP script, using either POST or GET, and handles the data the script returns (in xml form or not, as you choose), all without refreshing the page.
Here’s a nice new introduction to Ajax:
http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro1.html?ca=dgr-lnxw01MasterAJAX
That article has plenty of links to more if it seems like what you have in mind.
Of course, the problem with this approach is that your user may have Javascript disabled, or may be using assistive technology (such as a screen reader for the blind) that cannot use the Javascript.