my problem was very similar, i only added the next line into my
script:

asynchronous: false,

and it works fine

eulerss

On 23 ene, 08:12, "[email protected]" <[email protected]>
wrote:
> I get an hint that we are 'compaesani' :-P
>
> Anyhow.. thank you very much,I'm studying that link you gave me,
> meanwhile, in my particular case setting to "syncronous" has indeed
> resolved my issue.
>
> Thank you very much for you toughtfull response
>
> A presto
>
> David(e)
>
> On Jan 23, 2:08 pm, "T.J. Crowder" <[email protected]> wrote:
>
>
>
> > Ciao David,
>
> > By default, Ajax requests are asynchronous, and so they get *started*
> > when you do "new Ajax.Requst" but then they run for a while and
> > complete later; meanwhile, your code that started the request
> > continues.  So what your anonymous function above returns will be
> > whatever value risultato has when the function starts, since the
> > request hasn't completed yet.  Later, at a time you cannot predict,
> > the value of risultato will be updated by the callbacks you've
> > registered.
>
> > You _can_ make requests synchronous if you like (set the asynchronous
> > parameter to false), but that will lock up the UI of the browser for
> > the entire time the request is taking pace -- which from what you've
> > said about availability.php non sembra una buona idea.
>
> > This might be 
> > useful:http://proto-scripty.wikidot.com/prototype:how-to-bulletproof-ajax-re...
> > It's an example of an Ajax request that starts the process of
> > retriving a record from the server, and then displays that record (or,
> > of course, an error) on callback.
>
> > Basically, when working with lots of asynchronous stuff like this, you
> > end up modifying your logic so you don't make a function call and
> > expect an answer back, but instead you make a function call and expect
> > to handle the result in callbacks.
>
> > HTH,
> > --
> > T.J. Crowder
> > tj / crowder software / com
> > Independent Software Engineer, consulting services available
>
> > On Jan 23, 12:38 pm, "[email protected]" <[email protected]>
> > wrote:
>
> > > First of all I'm David, from Italy.
> > > I recently started looking into your fabolous prototype thanks to this
> > > script:http://tetlaw.id.au/view/javascript/really-easy-field-validation
>
> > > After some playing around I decided to add another validation check.
> > > Without going into the details of the other script (which is not
> > > relevent) I would like to ask you how can I return a variable AFTER an
> > > Ajax request has finished.
>
> > > This is the code:
>
> > > function(v) {
> > >                 new Ajax.Request('availability.php',
> > >                 {method: 'get', parameters: {validate: v},
> > >                 onSuccess: function( transport ) {
> > >                      if( transport.responseText.match(/true/)) {
> > >                         risultato = false;
> > >                         }
> > >                 else {
> > >                 risultato = true;
> > >                 }
> > >                 }
> > >                 });
> > >                 return risultato;
> > >                 }
>
> > > The problem is that availability takes a long time to process the
> > > response (1sec) and while he process the thing risultato has the value
> > > of the last query.
>
> > > For example: first time we have risultato = true;
> > > so it returns: true
> > > The second time I invoke the function i still have risultato = true
> > > from before. Now the ajx request returns risultato = false BUT while
> > > it goes the functions returns true.
>
> > > How can I avoid this?
>
> > > Thank you very much- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to