2014-11-02 61 views
-1

我有以下代碼。此代碼僅顯示現有和不存在電子郵件的第二個提醒。你能告訴我錯誤在哪裏嗎?檢查電子郵件中已存在的郵箱

<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";         
+0

什麼是你所面對的問題。 – Shubanker 2014-11-02 09:53:48

+0

對於現有和不存在的電子郵件,代碼顯示第二個提示..... – cmit 2014-11-02 10:03:20

+0

專注於此流程的一個部分 - 首先驗證服務器是否按預期運行,然後轉到客戶端代碼。請不要只是跳過你所有的代碼讓我們處理 - 你必須先做一些自我調試。 – Lix 2014-11-02 10:04:40

回答

1

您需要呼應的結果,而不是返還:

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

如果您只是使用return,則該值不會被髮送回瀏覽器。

當然,你可以只是做

echo $row; 
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"; 
相關問題