Monday, July 27, 2009

[jQuery] Re: Fetching data from callback with $.ajax

If you want a global variable, set a global variable.

var isAuthenticated = false;

$(document).ready(function(){

// do your ajax here and set: isAuthenticated = true;
// in your success callback

});

On Jul 26, 5:27 am, FrenchiINLA <Mamali.Sohe...@gmail.com> wrote:
> I would do like that:
> isAuthenticated function return true or false according the entry,
> then check if is Authenticated, ajax to your php something like
> if(isAuthenticated($('#username').val(), $('#password').val())) {
>
> $ajax(
> {
> --
> --
> success: function(msg){
> alert(msg=='authenticated')}
> }
>
> );
>
> }
>
> On Jul 26, 3:56 am, Sander Thalen <stha...@gmail.com> wrote:
>
> > Hello all,
>
> > I've recently started with jQuery because I wanted to use it for posting
> > details from an login form to a PHP script which should return whether the
> > user is authenticated or not.
>
> > For this I use $.ajax, because of it's flexibility and I prefer to use it in
> > this implementation. Reading (jQuery docs and examples) and searching a lot
> > did not solve me on one issue: fetching the data in the callback to the
> > global scope. This one is driving me crazy.
>
> > Here is the code:
> > <script type="text/javascript">
> >     $(document).ready(function(){
> >         var form = $('#form');
> >         form.submit(function(){ // Only execute this function on submit
> >             if(isAuthenticated($('#username').val(), $('#password').val()))
> > {
> >                 return true; // I only want the form to be submitted when
> > the credentials are valid (found to be valid by the PHP script)
> >             } else {
> >                 return false;
> >             }
> >         });
>
> >         function isAuthenticated(username, password) { // This function call
> > the PHP script to ask whether the credentials are valid or not.
> >             $.ajax({
> >                 type: "POST",
> >                 url: "json.php?module=login&action=authenticate",
> >                 data: "username=" + username + "&password=" + password,
> >                 success: function(msg) {
> >                     alert(msg); // This returns 'authenticated' in plain
> > text (at the moment) from the PHP script. Functions fine or course, but I
> > want to use it outside this function. How??
> >                 }
> >             });
>
> >            And here is why I want this to work:
> >             if(msg == "authenticated") { // This function should be able to
> > read the var 'msg' from the callback in the function above. How?
> >                 alert("Outside: " + msg); // At this point, msg is of course
> > undefined.
> >                 return true;
> >             }
> >         }
> >     });
> >     </script>
>
> > So the only question actually is, how can I let the function that should
> > check the message of the response know that 'msg' has been set?
>
> > I hope this makes it clear what I mean ;)
>
> > Thanks,
> > Sander
>
>

No comments: