2017-03-02 137 views
-3

我新的PHP和AJAX如果else语句总是返回相同的值

阿贾克斯返回数据==“OK”或数据==“NO”依赖于电子邮件,但如果其他块返回始终相同的值。它始终打印最后一个块,如“电子邮件可用!”我找不到这个错误。

$.ajax({ 
      type: 'post', 
      url: 'check_email.php', 
      data: {email:email,}, 
      success: callback});} 
      function callback(data){     
       email_error = false;  
       $("#email_error").css("display","block"); 
      if(data =="OK"){ 
       $("#email_error").html("Email was already used!"); 
       $("#email_error").css("color","#990000");    
       $("#email_error").show(); 
       email_error = true; 
      }else{ 
       $("#email_error").html("Email is available!"); 
       $("#email_error").css("color","#F1F0D1"); 
       $("#email_error").show(); 
       email_error = false; 
       }   
      } 
+1

您是否试过使用'console.log(data)'来检查值? – keksnicoh

+0

谢谢,是的,我检查它返回OK或NO根据PHP返回value.but在if-else语句它总是打印最后一个块。 – fevzi

+0

我们需要查看您的check_email.php脚本。 – Lynne

回答

0

我在link得到了一个简单的解决方案只有我改变了"OK""\r\nOK"

$.ajax({ 
      type: 'post', 
      url: 'check_email.php', 
      data: {email:email,}, 
      success: callback});} 
      function callback(data){ 
       email_error = false;  
       $("#email_error").css("display","block"); 
      if(data =="\r\nOK"){ 
       $("#email_error").html("Email was already used!"); 
       $("#email_error").css("color","#990000");    
       $("#email_error").show(); 
       email_error = true; 
      }else{ 
       $("#email_error").html("Email is available!"); 
       $("#email_error").css("color","#F1F0D1"); 
       $("#email_error").show(); 
       email_error = false; 
       }   
      } 
+0

我回滚了您的编辑,删除了您找到信息的链接。将信誉归功于你找到什么东西是Stack Overflow的一部分。不这样做,根据具体情况,会导致各种负面的事情发生。如果你真诚地告诉你所用的解决方案来自哪里,人们会更加尊重你。 – Makyen

0

使用try ===代替==比较字符串

+1

应该这样做,但在这种情况下应该没关系。 –

0

AJAX

var email = "[email protected]"; 

$.ajax(
{ 
    type: 'post', 
    url: 'check_email.php', 
    data: 
    { 
     email: email, 
    }, 
    success: callback 
}); 


function callback(data) 
{ 
    email_error = false; 
    $("#email_error").css("display", "block"); 
    if (data == "OK") 
    { 
     $("#email_error").html("Email was already used!"); 
     $("#email_error").css("color", "#990000"); 
     $("#email_error").show(); 
     email_error = true; 
    } 
    else if(data =="NO") 
    { 
     $("#email_error").html("Email is available!"); 
     $("#email_error").css("color", "#F1F0D1"); 
     $("#email_error").show(); 
     email_error = false; 
    } 
} 

HTML

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 

    <script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="check_email.js"></script> 


    <title></title> 
</head> 
<body> 

<div id="email_error"> 

</body> 
</html> 

PHP

<?php 
echo "NO"; 

?> 
+0

这是工作。 – DragonFire

+0

有两件事是一个有语法错误,有时也完全给所有条件(甚至其他条件)有帮助...(它不应该,但它确实) – DragonFire

+0

有时会在关闭标签后留下一个空格吗?>也会导致此问题 – DragonFire