So what you want to do is bind the onSuccess callback to the class in which this Ajax.Request is created. Theoretically this would go something like this:
new Ajax.Request('./map/map.php?'+values, > { > method:'get', > onSuccess: function(transport) > { > this.response = > transport.responseText || "no response text"; > > }.bind(this), > onFailure: function(){ > // > } > } > alert(this.response); But I think you might be missing a key characteristic of Ajax Requests here. They are asynchronous - that means they're done in parallel. So your code executes like this: Send Ajax Request Well, I don't particularly want to wait around for the server to respond so I'm going to do something else Try to alert(this.response) - ouch, it didn't have anything in. I've got nothing to do now, tralalala... Oh that ajax request has finished! And it was succesful... Off to the onSuccess callback then. Set response, and... I've got absolutely nothing to do! The advantage of this is that you can have lots of them going on at the same time, in parallel. But you can't make assumptions that if you create requests in the order 1,2,3 they'll finish in that order - that depends on how the server handles them. Response 3 may be cached and come back straight away, for example. So your code should be something like this: someFunctionOnClass: function() { new Ajax.Request('./map/map.php?'+values, { method:'get', onSuccess: function(transport) { this.response = transport.responseText || "no response text"; this.alertFunction(); }.bind(this), onFailure: function(){ // } } }, alertFunction: function() { alert(this.response); } On Oct 2, 4:37 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > Hello all, > > I seem to be going in circles with something I would have to assume > would be simple. Im trying to return a value from the onSuccess > handler but it will not keep the value. > > new Ajax.Request('./map/map.php?'+values, > { > method:'get', > onSuccess: function(transport) > { > var response = transport.responseText > || "no response text"; > > }, > onFailure: function(){ > // > } > }); > alert(response); > > Obviously this does not work. How can I access the variable outside of > the onSuccess event? Or, how could I access an object within the > onSuccess handler from outside of this scope? > > I realize I can access and change global variables, but I am trying to > keep everything within my class which is what is causing me such > problems. I have tried using Bind, Call, and Apply but I don't think I > am using them right... > > Any help would be very much appreciated. > > Thanks --~--~---------~--~----~------------~-------~--~----~ 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 prototype-scriptaculous@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---