2016-12-06 14 views
2

我的任務需要一些Ajax/JQuery來交互式地檢查用戶名是否可用。這是我的,但它不起作用。顯然我沒有很多經驗。互動電子郵件檢查 - 我在這裏錯過了什麼?

後端PHP

<?php 

    if($_POST) 
    { 
     $email  = strip_tags($_POST['email']); 

    $stmt=$dbcon->prepare("SELECT email FROM users WHERE email=:email"); 
    $stmt->execute(array(':email'=>$email)); 
    $count=$stmt->rowCount(); 

    if($count>0) 
    { 
    echo "<span style='color:brown;'>Sorry username already taken !!!</span>"; 
    } 
    else 
    { 
    echo "<span style='color:green;'>available</span>"; 
    } 
    } 
?> 

我已經採取了明顯的原因數據庫連接。

JS腳本我使用

$(document).ready(function() 
{  
$("#email").keyup(function() 
{ 
    var email = $(this).val(); 

    if(email.length > 3) 
    { 
    $("#user-result").html('checking...'); 

    /*$.post("username-check.php", $("#reg-form").serialize()) 
    .done(function(data){ 
    $("#result").html(data); 
    });*/ 

    $.ajax({ 

    type : 'POST', 
    url : 'checkemail.php', 
    data : $(this).serialize(), 
    success : function(data) 
     { 
       $("#user-result").html(data); 
      } 
    }); 
    return false; 

    } 
    else 
    { 
    $("#user-result").html(''); 
    } 
}); 

}); 

沒有與提到的ID這是爲了顯示文本的跨度,但沒有實際發生。一直呆在這裏。

+2

F12瀏覽器工具並查找腳本錯誤,然後查看網絡選項卡並檢查腳本發送/接收的內容。 –

+0

'PDOStatement :: rowCount()返回受相應PDOStatement對象執行的最後一個DELETE,INSERT或UPDATE語句影響的行數。 'https://secure.php.net/manual/en/pdostatement.rowcount.php –

+0

也許,它有幫助。 http://stackoverflow.com/a/15010497/3943162 – James

回答

2

嘗試使用count(*)代替:

$stmt = $dbcon->prepare("SELECT count(*) FROM users WHERE email=:email"); 
$stmt->execute(array(':email' => $email)); 
$count = $stmt->fetchColumn(); 

希望這可以幫助你。

+0

感謝@Charlotte Dunois的編輯。 –

+0

這工作,謝謝! – RachMcrae

+0

不客氣。很高興這有助於。 –

相關問題