Hi,

I think that my problem is complicated. I already done what you have
told me due to the following requirement:

I have another function used for doing form validation which I named
it as formVal(). Inside formVal() I called avaChk() in a conditional
if statement i.e.
if (avaChk()){ ....

I modified avaChk() by adding after alert('222) and alert('333')
return false and return true respectively. Calling avaChk() leads only
alert('111') and alert('444'). In other word avaChk() did not return
true or false it just return the code outside $.ajax.

You may notice that the code $.ajax is placed inside success handler.
This is making me mad!!!

Best regards,
Said Bakr

On Feb 11, 5:44 am, "Karl Rudd" <[EMAIL PROTECTED]> wrote:
> It's a easy misunderstanding to have when you first begin to use AJAX.
>
> Remember that the first 'A' in AJAX stands for "Asynchronous". You ask
> the browser (via jQuery's ajax function) to retrieve a URL and you
> give it a function that it will call with the result when it has
> retrieved it.
>
> The browser may take 50 milliseconds or 50 seconds to retrieve the
> URL, you can't be sure how long.
>
> In the mean time the browser (and your JavaScript function) continues
> on its way.
>
> So you must put all the code for handling the results in the "success"
> (or "error") handler function.
>
> Does that help?
>
> Karl Rudd
>
> On Feb 11, 2008 1:59 PM,saidbakr<[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > Hi,
>
> > I have very little knowledge about javascript. I used it with ordinary
> > functions and the code of jquery may make me confused.
> > I used it in a javascript function some thing like that:
>
> > <script>
> > function avaChk(lnk,id){
> > alert('111')
> > ob = document.getElementById('id');
> > $.ajax({url: 'chk_user.php',type:'GET', data: id+'='+ el, cache:
> > false, dataType: "script", success: function(data, textStatus){
> > if (data == 0){
>
> >                 alert('222');
> > }
> > else{
> > alert('333');
> > }
> > },
> >         error: function(x,txt,err){
> >         $("#waitImg"+lnk).remove();
> >         alert('Could not check...'+"\n"+'The server may down or busy. Retry
> > again after a while.');
> >         }
> > });
> > alert('444');
> > }
>
> > What I noticed is, when I call the function avaChk(), for me, very
> > strange thing is happened. ;) I think the jQuery proffesional will
> > know it:
>
> > The alert sequence as I respect is 111, 222 or 333 then 444
> > what happened is not like above, it was 111,444, 222 or 333 !!!
>
> > I respected that the jQuery code should be executed before the
> > alert(444). In real world this prevent me from using the value of data
> > or return it through another function.
>
> > What's wrong in my understanding and how can I overcome this problem?- Hide 
> > quoted text -
>
> - Show quoted text -

Reply via email to