xmlhttp.responseText not display text

Wilf picture Wilf · Sep 13, 2012 · Viewed 7.5k times · Source

I'm having a situation with ajax responseText. The response text from url is well function. But something inside the ajax code goes wrong. It doesn't recognize the response text and add class to the targeted id. Here's the code :

<script type="text/javascript">
function updateField(nameValue){
    var xmlHttp=null;
    try{
        xmlHttp=new XMLHttpRequest();
        }
catch (e){
    try{
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
catch (e){
    alert("No AJAX!");
    return false;
    }
}
xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4){
        if (xmlHttp.status==200){
            //this will be called after update
                var responseText = xmlHttp.responseText;        
            }
        }
    }
    //this will send the data to server to be updated
    xmlHttp.open("GET", 'inc/room_rate_updatez.php?'+ nameValue, true);
    xmlHttp.send(null);
}

function doSomethingAfterUpdate(retValFromPHP){
//retValFromPHP can be any thing you want!

    if (reponseText == "Failed"){
       document.getElementById("result").innerHTML=xmlhttp.responseText.className = "error";
    }else{
       document.getElementById("result").innerHTML=xmlhttp.responseText.className = "success";
    }
}

</script>

<div id="result"></div><input type="text" name="rate|498|6500-5200-4600-5600-4100|0" id="498" value="6500" size="10" onchange="updateField(this.name + '=' + this.value);"/>

The response from room_rate_updatez.php are "Succeed" and "Failed". I've tried many times to make it work but no luck. Please suggest.

Answer

Check the readyState & status like below.

if (xmlHttp.readyState==4 && xmlHttp.status==200)
 {
  var httpResp=xmlhttp.responseText;
 }
var scriptObj1 = $.parseJSON(httpResp);