priyesh kanodiya
priyesh kanodiya

Reputation: 13

Storing ajax output into variable

I have to check weather invoice number is duplicate or not for that i am using following ajax.

function check_duplicate_invoice(num){
          var isDuplicate ;

          xmlhttp = new XMLHttpRequest();
           xmlhttp.open("GET","check_duplicate_invoice.php?in="+num, true);
           xmlhttp.send();
           xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

                    isDuplicate =xmlhttp.responseText.trim() // reponceText will be 0 or 1
                }
            }

            alert(isDuplicate); //result undefined

            if(isDuplicate== 1){
                alert("Invoice Number Already Exist");
            }
    }

I am not able to store ajax output into isDuplicate variable. Please help.

Upvotes: 0

Views: 52

Answers (1)

e4c5
e4c5

Reputation: 53734

That's because ajax calls are asynchronous. You are looking at the variable before the request has had a time to complete. Try this:

function check_duplicate_invoice(num){
      var isDuplicate ;

      xmlhttp = new XMLHttpRequest();
       xmlhttp.open("GET","check_duplicate_invoice.php?in="+num, true);
       xmlhttp.send();
       xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

                isDuplicate =xmlhttp.responseText.trim() // reponceText will be 0 or 1
                alert(isDuplicate); //result undefined

                if(isDuplicate== 1){
                   alert("Invoice Number Already Exist");
                }

            }
        }

}

Upvotes: 1

Related Questions