2016-12-06 4 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>"; 
    } 
    } 
?> 

私は明白な理由のためのDB接続を取り出しています。

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

ようこそ。これはうれしいです。 –

関連する問題