2016-05-11 12 views
-2

ajaxでユーザ名が利用可能かどうかチェックしたい。 JavaScriptのajax経由でユーザ名を確認する

<script type="text/javascript"> 
$(document).ready(function() { 
    var x_timer;  
    $("#username").keyup(function (e){ 
     clearTimeout(x_timer); 
     var user_name = $(this).val(); 
     x_timer = setTimeout(function(){ 
      check_username_ajax(user_name); 
     }, 1000); 
    }); 

function check_username_ajax(username){ 
    $("#user-result").html('<img src="ajax-loader.gif" />'); 
    $.post('username-checker.php', {'username':username}, function(data) { 
     $("#user-result").html(data); 
    }); 
} 
}); 
</script> 

、ここでは

<?php 
if(isset($_POST["username"])) 
{ 
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
     die(); 
    } 
    $mysqli = new mysqli('localhost' , 'root', 'juaid123', 'project2'); 
    if ($mysqli->connect_error){ 
     die('Could not connect to database!'); 
    } 

    $username = filter_var($_POST["username"], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH); 

    $statement = $mysqli->prepare("SELECT username FROM user_list WHERE username=?"); 
    $statement->bind_param('s', $username); 
    $statement->execute(); 
    $statement->bind_result($username); 
    if($statement->fetch()){ 
     die('Username Not Available!'); 
    }else{ 
     die('Username Available!'); 
    } 
} 
?> 

すべてがリアルタイムで完璧と私のコードショーのメッセージ働くPHPさ

HTML

<div id="registration-form"> 
    <label for="username">Enter Username : 
    <input name="username" type="text" id="username" maxlength="15"> <span id="user-result"></span> 
    </label> 
</div> 

:私は現在、次のコードを使用しています、しかし、問題は私はユーザー名文字が6未満であればメッセージを表示したくないということですあなたは、私がこれを行うことができますどのように私を助けてくださいすることができ、入力フィールドに文字と数字を許可したい... おかげ

+0

あなたはまた、*プラン-B *としてサーバー側メソッドを使用する必要があり、彼らはJSを無効にする必要があります。 –

答えて

1

あなただけの数字と文字のみhttp://www.w3schools.com/tags/att_input_pattern.aspを制限するために、あなたの入力にHTMLパターン属性を使用することができます。 [a-zA-Z0-9]

次に、あなただけのあなたのポスト機能で検証を置くことができます。

$("#username").keyup(function (e){ 
    clearTimeout(x_timer); 
    var user_name = $(this).val(); 
    if(user_name.length >= 6){ //Validate number of characters here 
     x_timer = setTimeout(function(){ 
      check_username_ajax(user_name); 
     }, 1000); 
    } 
}); 
+0

そんなにうまくいっています – Joe

+0

あなたはそれを持っています!問題ない – ntgCleaner

関連する問題