xmlhttp.responseText not display text

北城以北 提交于 2019-12-13 20:07:55

问题


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.


回答1:


Try this:

function updateField(nameValue){
   var xmlHttp=null;
   ....
   xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4){
        if (xmlHttp.status==200){
            //this will be called after update
                var responseText = xmlHttp.responseText;        
                doSomethingAfterUpdate(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 (retValFromPHP == "Failed"){
       document.getElementById("result").innerHTML = "error";
       document.getElementById("result").className = "error" 
    }else{
       document.getElementById("result").innerHTML = "success";
       document.getElementById("result").className = "success" 
    }
}



回答2:


Check the readyState & status like below.

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


来源:https://stackoverflow.com/questions/12404431/xmlhttp-responsetext-not-display-text

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!