ユーザーが必要とするユーザー名がフォームを送信せずに既に取得されているかどうかを確認しようとしています。基本的には、ユーザー名フィールドの 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 つのパラメーターがありますね。
次に、これが実際に機能したら、メッセージ/変数を入力ページに送り返すにはどうすればよいですか? ユーザー名が取得された場合はそう言えますか、それとも利用可能であればそう言えますか?
ありがとう!