如何从AJAX响应中找到值(true或false)?

时间:2013-08-08 22:03:59

标签: javascript ajax boolean

我写了一个脚本注册用户。在最后一步中,我需要从函数中获取值true或false,以查找电子邮件是否已存在。

function do_register(user_email){

    if (!isemailexist(user_email))  {
    document.getElementById("error").innerHTML="email is already exist, please change!!";
    document.regForm.user_email.focus()
    return false;
    } 

if (user_email=="") {
    document.getElementById("error").innerHTML="email is emphy!!";
    document.regForm.user_email.focus()
    return false;
    } 

if(document.regForm.user_name.value!=""){ process_register();} } 

function isemailexist ()

    xmlHttp.onreadystatechange=function () {

    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){

    var str=xmlHttp.responseText;
    var res=JSON.parse(str);

    if (res[0]=="no"){  
    return false;
    }
    }
    haha=xmlHttp.onreadystatechange.test(res[0]); ///I used test(); methode  in order to find value true or false

    }

我已经尝试了很多,但没有一个可以给我真实或者fals!

我已经更新了上面的脚本,我希望它更好。还有一些代码:

PHP代码

if(mysql_num_rows($result)>0){ //  email is already exist
     $phpArray = array("no","Erroremail is aleady exist");
     echo json_encode($phpArray);
 }

1 个答案:

答案 0 :(得分:0)

你做得太复杂了。当响应完全错误时,不需要创建数组,因为您已经告诉用户该电子邮件已经存在。

而不是做

if(mysql_num_rows($result)>0){ //  email is already exist
     $phpArray = array("no","Erroremail is aleady exist");
     echo json_encode($phpArray);
}

只需在服务器端执行此操作。

if(mysql_num_rows($result)>0){ //  email is already exist
     return false;
}

当您不再使用数组时,您的响应会发生变化,您需要稍微调整一下代码。从[0]移除res[0]


然后您的服务器响应将为false,因此请更改

if (res[0]=="no"){  
    return false;
}

if (res==false){  
    return false;
}
else{
//continue...
}