2

ユーザーが必要とするユーザー名がフォームを送信せずに既に取得されているかどうかを確認しようとしています。基本的には、ユーザー名フィールドの onBlur です。

困ったことがあり、いくつか質問があります。

入力フィールドと js があります。

<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){

$('#username').on('blur', checkdb);

function checkdb(){ 
    var desiredUsername = $(this).val();
    $.ajaxSetup({
        url: "check-db.php",
        type: "POST",
    });

    $.ajax({
        data: 'desiredUsername='+desiredUsername,       
        success: function (msg) {
            alert (msg);},
            error: function (XMLHttpRequest, textStatus, errorThrown){   
            alert('Error submitting request.'); 
        }   
    });     
}           
});
</script>

<input type="text" name="username" id="username">

そして私のcheck-db.phpファイル:

$mysqli = mysqli_connect("localhost","connection info");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$desiredUsername = $_POST['desiredUsername'];


$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = '?' ");
$stmt->bind_param('s', $desiredUsername);
$stmt->execute();

まず、PHPコードから「変数の数が準備されたステートメントのパラメーターの数と一致しません」というエラーが表示されますが、これは少し混乱していますか? 1 つの変数と 1 つのパラメーターがありますね。

次に、これが実際に機能したら、メッセージ/変数を入力ページに送り返すにはどうすればよいですか? ユーザー名が取得された場合はそう言えますか、それとも利用可能であればそう言えますか?

ありがとう!

4

3 に答える 3

1

サーバーのサイズ(あなたの場合はPHP)では、echo次のようにクライアント側(Javascript)に渡したいものだけです:

echo json_encode($datas); //can be array or whatever

次に、クライアント側で:

$.ajax({
    method: 'POST',
    dataType:'json',
    data: {'username' : desiredUsername}, //then getting $_POST['username']
    success: function(datas) {
        console.log(datas); //Your previous data from the server side
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){    
        console.log(textStatus);
    }
});
于 2013-02-12T19:38:36.037 に答える
0

試す

function checkdb(){ 
    var desiredUsername = $(this).val();
    $.ajaxSetup({
        url: "check-db.php",
        type: "POST",
    });

    $.ajax({
        data: {
            desiredUsername: desiredUsername
        },
        success: function (msg) {
            alert(msg);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown){    
            alert('Error submitting request.'); 
        }   
    });    
} 
于 2013-02-12T19:35:47.040 に答える
0

データの送信時にエラーが発生した場合は、次のように JS オブジェクトをデータとして送信する必要があります。

data: { desiredUsername: desiredUsername },
于 2013-02-12T19:37:20.423 に答える