if (4==xmlhttp.readyState){
if (200==xmlhttp.status){
var responseText = xmlhttp.responseText;
alert(responseText);
   if (responseText=="yes"){
document.getElementById('div1').innerHTML = "该用户名不能注册,请你更改一个!";    
}else{
  document.getElementById('div1').innerHTML = "该用户名可以注册";
   }
}else{
alert("发生错误!");
}
responseText  在PHP页面传过的值是YES 、NO  如果是YES 则表示用户被占,可是无论传过来是YES 还是NO  都执行
document.getElementById('div1').innerHTML = "该用户名可以注册";    这是什么原因啊?

解决方案 »

  1.   

    少个花括号:
    if (4==xmlhttp.readyState){
    if (200==xmlhttp.status){
    var responseText = xmlhttp.responseText;
    alert(responseText);
    if (responseText=="yes"){
    document.getElementById('div1').innerHTML = "该用户名不能注册,请你更改一个!";
    }else{
    document.getElementById('div1').innerHTML = "该用户名可以注册";  }
    }
    }else{
    alert("发生错误!");
    }
      

  2.   


    var xmlhttp = false;
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e2) {
    xmlhttp = false;
    }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    xmlhttp = new XMLHttpRequest();
    }
    function checkname(data){
    var classname = document.getElementById('classname').value;
    xmlhttp.open("GET","ajax.php?classname="+classname,true);
    xmlhttp.send(null);
    document.getElementById('div1').innerHTML = process_request;//显示状态
    xmlhttp.onreadystatechange=function(){
    if (4==xmlhttp.readyState){
    if (200==xmlhttp.status){
    var responseText = xmlhttp.responseText;
    alert(responseText);
       if (responseText=="yes"){
    document.getElementById('div1').innerHTML = "该用户名不能注册,请你更改一个!";    
    }else{
      document.getElementById('div1').innerHTML = "该用户名可以注册";
       
       }
    }else{
    alert("发生错误!");
    }
    }
    }
    }

    var process_request = "<img src='./images/loading1.gif' width='16' height='16' border='0' align='absmiddle'>正在数据处理中...";
      

  3.   

    var xmlhttp = false;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e2) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    function checkname(data) {
        var classname = document.getElementById('classname').value;
        xmlhttp.open("GET", "ajax.php?classname=" + classname, true);
        xmlhttp.send(null);
        document.getElementById('div1').innerHTML = process_request; //显示状态
        xmlhttp.onreadystatechange = function () {
            if (4 == xmlhttp.readyState) {
                if (200 == xmlhttp.status) {
                    var responseText = xmlhttp.responseText;
                    alert(responseText);
                    if (responseText == "yes") {
                        document.getElementById('div1').innerHTML = "该用户名不能注册,请你更改一个!";
                    } else {
                        document.getElementById('div1').innerHTML = "该用户名可以注册";
                    }
                } else {
                    alert("发生错误!");
                }
            }
        }
    }
      

  4.   

    <?php
    require("checksession.php");
    require("config.php");//配置文件
    require(".../.../include/db_class.php");   //连接数据类
    require("../../include/function.php");
    $classname = $_GET['classname'];
    $sql = "select * from category where classname='$classname'";$query=mysql_query($sql);
    $rst=mysql_num_rows($query);if ($rst==1)
    {
    echo 'yes';
    }
    else
    {
    echo 'no';
    }
    ?>
    处理页面是这样写的
      

  5.   

    if (responseText.toLocaleLowerCase() == "yes") {
         document.getElementById('div1').innerHTML = "该用户名不能注册,请你更改一个!";
    }
    else {
         document.getElementById('div1').innerHTML = "该用户名可以注册";
     }
      

  6.   

    不可以   alert(responseText);这块都正常,就到IF判断的时候不行了
      

  7.   

    返回数据responseText是不是含有其它不可见的字符,先过滤一下再转为为小写试试。
      

  8.   

    js过滤器来比较麻烦,你最好在ajax.php中就过滤并转换为小写,然后再在js中判断试试。
      

  9.   

    ajax.php代码发上来看看,我估计出问题的原因还是返回数据中有不可见字符。
      

  10.   

    <?php
    require("checksession.php");
    require("config.php");//配置文件
    require(".../.../include/db_class.php");   //连接数据类
    require("../../include/function.php");
    $classname = htmlspecialchars($_GET['classname']);
    $sql = "select * from category where classname='$classname'";$query=mysql_query($sql);
    $rst=mysql_num_rows($query);if($rst==1)
    {
    echo "yes";
    }else{
    echo "no";
    }
    ?>
      

  11.   

    谢谢你啊。
    我也休息了,NND