You can with ajax... depending on the result that is returned, you can
have your script perform various things. If the result returns with a
success for the call, you can call one thing, while if returns a
failure, you can, say alert the user with a message. Even single
threads allow for multiple routes. Every language has to wait for some
result or another before continuing along its path. You can't just
tell a program, for instance, to add 2 numbers, but continue with the
script before it finishes. That would make no sense. Maybe I
misunderstood your response, but that is what it sounds like you are
saying.

Also, jquery has actions for success and failure's of AJAX actions...


On Jul 15, 1:54 am, iTsadok <[EMAIL PROTECTED]> wrote:
> You can't "wait for a result before returning", there is no waiting
> mechanism (only timers) and Javascript is single-threaded anyway, so
> nothing will happen until you return.
> What you should do is return false, and perform a manual submit of the
> form once the POST is done. Now, this might be tricky, since just
> calling submit() on the form will call the bound handler, thereby
> creating an infinite loop. So you either need to unbind the handler,
> or have an if statement and some sort of state.
>
> As a simplified example, this should do the trick (haven't tested it,
> sorry) for a form with id "form1":
>
> $("#form1").bind("submit", "save_data", function() {
>     var bound_form = $(this);
>     $.post("/save_data.php", { name: "opt-in name", email: "opt-in
> email" }, function() {
>         bound_form.unbind("submit", "save_data").submit();
>     });
>
> });
>
> Note that after the submit happens the handler would no longer be
> bound to the submit event, but in your case it doesn't matter, since
> you're going to a different page anyway.
>
> On Jul 14, 5:59 pm, Kirov <[EMAIL PROTECTED]> wrote:
>
> > I think you should wait for a result code from the post request before
> > you return true; otherwise the post is handled asynchronously and
> > perhaps not done according to your plans :)
>
> > Good luck;
>
> > On Jul 14, 4:49 pm, Sandy <[EMAIL PROTECTED]> wrote:
>
> > > hi,
>
> > > i wanna try to save the data from a form to a database before
> > > submitting it to it's rightful "action" url. this is an opt-in form i
> > > wanna work on.
>
> > > i did this: $("form:last").bind("submit", submit_optin);
> > > /* i altered the submit event of the opt-in form so it uses the
> > > submit_optin function i created */
>
> > > here's the submit_optin function:
> > > var submit_optin = function(){
> > >    var pbform = {name:"opt-in name", email: "opt-in email"}; // this
> > > is jus a sample data to be saved.
> > >    $.post("http://www.myurl.com/save_data";, pbform);
> > >    return true; // return true so it submits the form to it's rightful
> > > "action" url (which is a url from a different domain/server)
>
> > > };
>
> > > now for the MAIN PROBLEM... if i set submit_optin to return false it
> > > saves the data but if i set it to return true it just submits the form
> > > without saving the data... now is there a way to stop and wait before
> > > it saves the data before it submits the form? or is there any way i
> > > can achieve my goal?
>
> > > please help, thanks :-)

Reply via email to