我正在使用php和MySQL,我的问题是如何在javascript中创建函数或代码,在选择已存在的用户名时提醒用户,并且不允许他们提交注册表。
感谢
答案 0 :(得分:0)
我使用jQuery和PDO完成了这项操作,因此它是一个ajax用户名检查
这是我的jQuery
$(document).ready(function() {
$('#username').keyup(function() {
var username = $('#username').val();
if(username == "" || username.length < 4) {
$('#username').css('border', '3px #CCC solid');
$('#tick').hide();
}
else{
$.ajax({
type: "POST",
url: "util/UsernameCheck.php",
data: 'username='+ username,
cache: false,
success: function(response) {
if(response == 1) {
$('#username').css('border', '3px #C33 solid');
$('#tick').hide();
$('#cross').fadeIn();
}
else {
$('#username').css('border', '3px #090 solid');
$('#cross').hide();
$('#tick').fadeIn();
}
},
error: function(xhr, textStatus, errorThrown) {
alert('request failed');
}
});
}
});
});
#tick和#cross只是隐藏/显示的图像,具体取决于是否使用了用户名。
UsernameCheck.php
<?php
// your database info here
require '../config.php';
try {
// create a new instance of a PDO connection
$db = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
// if the connection fails, display an error message
echo 'ERROR: ' . $e->getMessage();
}
if(isset($_POST['username']) && !empty($_POST['username'])) {
$username = $_POST['username'];
$sql = 'SELECT username FROM users WHERE username = :username';
$stmt = $db->prepare($sql);
$stmt->bindValue('username', $username);
$stmt->execute();
$count = (int) count($stmt->fetchAll());
echo $count;
}
?>