Thanks. It took me a minute to figure out what you meant, but it's
working now.
On Sep 18, 1:55 pm, "Nathan White" <[EMAIL PROTECTED]> wrote:
> This is because your code is synchronous and the request is asynchronous. To
> explain your making a request it first in the background. After it fires
> your javascript continues executing and returns an undefined feed variable.
> When the onSuccess fires fetch has already processed and you have no means
> of accessing 'feed'.
>
> So you have two options
>
> 1. you can make your request synchronous by adding async : false to your
> request object.
> 2. you can have onSucces call another function like process. something like
> onSuccess : this.process.bind(this).
>
> Then in your object a simple process method.
>
> process : function(responseText){
>
> }
>
> Personally I would avoid blocking your code using method 1. Its not a wise
> approach.
>
> Method 2 will provide you will greater control and flexibility.
>
> On Thu, Sep 18, 2008 at 4:40 PM, VirtuosiMedia <[EMAIL PROTECTED]>wrote:
>
>
>
> > It's close, but not quite what I meant. I'd like to be able to access
> > the response after the request has already been made, preferably
> > outside of the Request object. It's for an RSS reader, so I need to do
> > some parsing and Request is just being used to get the feed from a
> > server file. This function is a method in a class, which should return
> > the response in a string, but it isn't returning anything but
> > undefined:
>
> > fetch: function(site){
> > var feed;
> > var req = new Request({
> > method: this.options.method,
> > url: this.options.rssFetchPath,
> > data: { 'url' : site },
> > onRequest: function() {
> > if (this.options.targetId) { $
> > (this.options.targetId).setProperty('html',
> > this.options.onRequestMessage); }
> > }.bind(this),
> > onSuccess: function(responseText) {
> > feed = responseText;
> > }
> > });
> > req.send();
> > return feed;
> > }
>
> > On Sep 18, 1:21 pm, "Iván N Paz" <[EMAIL PROTECTED]> wrote:
> > > Taking this code as an example:
>
> > > new Request.HTML(
> > > {
> > > url:'some/url/script.php',
> > > evalScripts:true,
> > > async:false,
> > > autoCancel:true,
>
> > > onSuccess: function(html) {
> > > //html processing here....
> > > alert(html);
> > > },
>
> > > onFailure: function() {
> > > alert('Error');
> > > }
> > > }
> > > ).get();
>
> > > I would just take the html node listing, process it in whatever way I
> > > want, then inject it....
>
> > > Is that what you meant???
>
> > > On 9/18/08, VirtuosiMedia <[EMAIL PROTECTED]> wrote:
>
> > > > Just in general, how do you access the response from the Request
> > > > object? I've been looking at the documentation and the MooTorial, but
> > > > I can't seem to make any headway. Other Ajax stuff I've done with
> > > > MooTools I haven't had to manipulate the response at all, so I've just
> > > > been able to inject it straight into the document, but now I need to
> > > > make some changes to it first. Any help would be greatly appreciated.
> > > > Thanks.
>
> > > --
> > > ◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦www.ivanicus.com