0

ajaxを使用してライブメールの可用性チェックを試みています。入力値を取得してphpに送信し、データベースにあるかどうかを確認したいのですが、作成できません。Firebug でスクリプトをテストすると、応答がありますが、電子メールが存在するかどうかに関係なく、出力は常に同じです。それは常に私に存在しないことを示しています。

テーブルは company と呼ばれます。電子メールのテーブル フィールドは電子メールです。

データベースへの接続は正常です。常に「TAKEN」出力が得られるため、問題は私のajaxコードにあると思います。

これは私のphpコードです:

<?php
// This is a sample code in case you wish to check the username from a mysql db table

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

$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = 'password';
$dbDatabase = 'php_test';

$db = mysql_connect($dbHost, $dbUsername, $dbPassword)
 or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db)
 or die ("Could not select database.");

$result = mysql_query("select Email from company where Email='".$email."'")
 or die(mysql_error());

if(mysql_num_rows($result))
{
echo 'NOT OK';
}
else
{
echo 'OK';
}
}
?>

これはajaxコードです

$(document).ready(function() {

$("#email").blur(function(){
    $.ajax({  
    type: "POST",  
    url: "unique_check.php",  
    data: {Email: $("#email").val()},
    dataType:"json", 
    success: function(msg){

        if(msg == "OK"){
            alert("FREE")
        }else{
            alert("TAKEN")
        }
    }
    });
});    
}); 

私の間違いがどこにあるか教えてください。または、より良い方法があれば教えてください。私は ajax と php が初めてであることに注意してください。どうもありがとうございました!

4

2 に答える 2

0

1 つの問題は、Javascript コードで、emailたまたま空になっているページの読み込み時に設定していることです。フィールドが実際にぼやけているときに値を取得するには email、関数内で再度設定する必要があります。.blur()

$(document).ready(function() {

    $("#email").blur(function(){
    var email = $("#email").val();
        $.ajax({  
            type: "POST",  
            url: "unique_check.php",  
            data: {Email: email},
            dataType:"json", 
            success: function(msg){

                if(msg == "OK"){
                    alert("FREE")
                }else{
                    alert("TAKEN")
                }
            }
        });
    });    
}); 
于 2013-03-26T21:39:56.220 に答える
0

私はあなたが欲しいと思います:

if($result != false && mysql_num_rows($result) > 0) {
echo 'NOT OK';
} else {
echo 'OK';
}

それでもうまくいかない場合は、クエリをエコーアウトして、それが目的のものであることを確認してください。

于 2013-03-26T21:36:24.380 に答える