检查数据库中是否存在电子邮件

时间:2014-11-02 09:52:27

标签: php jquery ajax

我有以下代码。此代码仅显示存在和不存在的电子邮件的第二个警报。你能告诉我错误在哪里吗?

<script>
$(document).ready(function(){

  $("#email").focusout(function(){
  var emailVal = $('#email').val();
    $.ajax({
        type: 'post',
        url: 'check_email.php',
        data:  { 
         myparam:emailVal //set it with a parameter name
      },

        success: function( data ) {
        if(data==1){
            alert("email already exists!");}
            if(data==0){
            alert("email is available!");}
        }
    });
  });
});

这是我的check_email.php文件。我猜想从php文件中获取值是错误的。

 <?php
  require_once("connnection.php"); 
    $con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();

    }

    if (isset($_POST['myparam'])){
    $email=mysqli_real_escape_string($con,$_POST['myparam']);
    $sql = "SELECT * FROM user WHERE email='$email'";
    $select=mysqli_query($con,$sql) or die("fail");
    $row = mysqli_num_rows($select);

    if ($row >0) {

        return 1;
    }else 
    return 0;

    }
    else
    echo "post error";                                

2 个答案:

答案 0 :(得分:1)

您需要回显结果而不是返回结果:

if ($row >0) {
  echo 1;
}
else {
  echo 0;
}

如果您只使用return,则该值不会被发送回浏览器。

当然,你可以做到

echo $row;

答案 1 :(得分:0)

您的PHP文件if-else代码块

中的大括号不匹配

更改自:

if ($row >0) {

        return 1;
    }else 
    return 0;

    }
    else
    echo "post error";  

if ($row >0) {

        return 1;
    }else 
    {
    return 0;

    }
    else
    echo "post error";