0

タイトルが示すように、Ajax を使用した登録フォームでユーザー名が DB に存在するかどうかを確認しようとしています。

次のスクリプトを使用します。

    $(document).ready(function() {

    //the min chars for username
    var min_chars = 3;

    //result texts
    var characters_error = 'Minimum amount of chars is 3';
    var checking_html = 'Checking...';

    //when button is clicked
    $('#user_id').keyup(function(){
        //run the character number check
        if($('#user_id').val().length < min_chars){
            //if it's bellow the minimum show characters_error text '
            $('#username_availability_result').html(characters_error);
        }else{
            //else show the cheking_text and run the function to check
            $('#username_availability_result').html(checking_html);
            check_availability();
        }
    });

});

//function to check username availability
function check_availability(){

    //get the username
    var user_id = $('#user_id').val();

    //use ajax to run the check
    $.post("db.php", { user_id: user_id },
        function(result){
            //if the result is 1
            if(result == 1){
                //show that the username is available
                $('#username_availability_result').html(user_id + ' is Available');
            }else{
                //show that the username is NOT available
                $('#username_availability_result').html(user_id + ' is not Available');
            }
        });

}

私のdb.phpファイルは次のようになります。

if (isset($_POST['action']) && $_POST['action'] == "signup") {
$user_id      = mysql_real_escape_string($_POST["user_id"]);
$new_password = md5(mysql_real_escape_string($_POST["new_password"]));
$new_email    = mysql_real_escape_string($_POST["new_email"]);
$checking_existance=mysqli_query($str,"SELECT username FROM users WHERE username='".$user_id."'");
$row=mysqli_fetch_assoc($checking_existance);
print_r($checking_existance);
if(mysqli_num_rows($checking_existance)>0)
 {
    echo 0;
 }
else{
    echo 1;
}

}

私が遭遇している問題は、ユーザー名が利用可能であっても利用できないことを結果が常に示していることです。

4

3 に答える 3

0

これは役に立ちました。次のリンクで解決策を確認できます。ここをクリックまたはここをクリックしてください。

于 2013-07-05T14:44:09.153 に答える