Pergunta

I want to dynamically change page content based on XML Ajax response. For testing I have created a static PHP generated XML file with only one tag. If the tag contains the string "yes" then it should display "AVAIL" otherwise display something else. The static value set for testing is "yes" but the script still displays "Not Avail".

What is the correct way to accomplish this?

I have some AJAX here..

xmlhttpp.onreadystatechange=function(){
if(xmlhttpp.readyState==4 && xmlhttpp.status==200){
    var response = xmlhttpp.responseXML;
    var avail = response.getElementsByTagName("avail")[0];
    if(avail.childNodes[0].nodeValue == "yes"){
        document.getElementById("dstat").innerHTML = "AVAIL";
    }else{
        document.getElementById("dstat").innerHTML = "NOT AVAIL '" + avail + "'";
    }


}

}

And the domain_checker.php file looks like this..

<?php
Header('Content-type: text/xml');
echo "<?xml version='1.0' encoding='UTF-8'?>
<domain>
  <avail>yes</avail>
</domain>";
?>
Foi útil?

Solução

avail is an xml node, what you want is the text inside the node to test against

    avail = response.getElementsByTagName("avail")[0];
    if(avail.childNodes[0].nodeValue == "yes"){
        document.getElementById("dstat").innerHTML = "AVAIL";
    }else{
        document.getElementById("dstat").innerHTML = "NOT AVAIL";
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top