Mike...

The reason I was moving in that direction was that I needed the
results of the $,get call immediately after it ran. I was using in
conjunction with jEditable as a function call and I had to return the
string that $.get got back from the server to jEditable.

Sadly, I'm going to have to put that portion of the project on hold as
I don't want to spend my budget on interface tweaks when the rest of
the project doesn't even work.

On Jun 23, 9:18 am, Rey Bango <[EMAIL PROTECTED]> wrote:
> No offense taken Mike. Andy and I were pounding our heads trying to
> figure out why the value wasn't appearing so by using the synchronous
> call, I was able to figure out that the variable outside of the $.get()
> callback was indeed being filled.
>
> You're right, though, that a synchronous call should be a last resort.
>
> Rey
>
>
>
>
>
> Michael Geary wrote:
> > Rey, no offense, bud, but synchronous ajax is a last resort. It freezes the
> > browser while the ajax data is loaded.  You don't want to use it unless
> > you're certain that it's necessary - and that is rare.
>
> > Andy, the real question is what you want to do. Scope is not a problem: You
> > can easily assign to a variable in an outer scope:
>
> >   var saveResult;
> >   $.get("ajax.cfm",function(result){
> >       saveResult = result;
> >   });
>
> > But you can't access saveResult immediately after $.get() returns as in your
> > example. After ajax.cfm is loaded and the callback runs, then saveResult is
> > available to any of your other code.
>
> > If you *must* be able to write code that works exactly like your example:
>
> >   $.get("ajax.cfm",function(result){
> >       // callback body
> >   });
> >   alert(result);
>
> > then synchronous ajax is the only way to do it. But freezing the browser
> > while the ajax call runs is something to avoid.
>
> > What is the actual goal you want to accomplish? Or were you just curious why
> > your example didn't work as you expected?
>
> > -Mike
>
> >> From: Rey Bango
>
> >> Hey Andy,
>
> >> I found out what's happening. You are in fact updating the var but
> >> $.get() being an async method, will take longer to complete
> >> than the rest of the JS script. Here's a small example:
>
> >> <script language=JavaScript>
> >> $(document).ready(function() {
>
> >>        foo = 'test 1';
>
> >>        $.get("module.cfm", function(result){
> >>             foo = 'Test 2';
> >>        });
>
> >>        alert( foo );
> >>   });
>
> >> </script>                
>
> >> <a href="javascript:alert(foo);void(0);">Go</a>
>
> >> You'll see that when you run this, the first alert box will
> >> come up saying "Test 1". Thats because $.get is processing
> >> the request asynchronously. When you click on the link,
> >> you'll then see that the value of foo has changed to 'Test 2'.
>
> >> Your best bet is to use this code:
>
> >> foo = 'test 1';
>
> >> $.ajax({
> >> url: "module.cfm",
> >> async: false,
> >> success: function(msg){
> >>        foo = 'Test 2';
> >>   }
> >> });
>
> >> alert( foo );
>
> >> $.ajax() lets you define where to make the call synchronous
> >> and asynchronous.
>
> >> I told you I'd figure it out!! :)
>
> >> HTH.
>
> >> Rey././
>
> >> Andy Matthews wrote:
> >>> I'm receiving a string of text back in a .get call:
>
> >>> I can alert the "result" variable while within the callback
> >> portion of
> >>> the .get call.
> >>> $.get("ajax.cfm",function(result){
> >>>    // callback body
> >>>    alert(result);
> >>> });
>
> >>> But I'd like to somehow be able to get that result variable outside
> >>> the callback like so:
>
> >>> $.get("ajax.cfm",function(result){
> >>>    // callback body
> >>> });
> >>> alert(result);
>
> >>> But it doesn't seem to be working. Surely .get has to be able to
> >>> interact with scope outside of itself. Am I missing something?
>
> --
> BrightLight Development, LLC.
> 954-775-1111 (o)
> 954-600-2726 (c)
> [EMAIL PROTECTED]://www.iambright.com- Hide quoted text -
>
> - Show quoted text -

Reply via email to