2012-04-29 2 views
0

Я пытаюсь проверить, было ли имя пользователя уже взято в базе данных mysql, и похоже, что оно не работает. В идеале это будет отображаться, когда я печатаю форму. Любая помощь будет очень признательна, поскольку я не вижу ничего плохого в коде.Автоматически показывать, если имя пользователя доступно с помощью JQuery

На моей главной странице приведен код jquery, javascript и html. Соответствующая страница - testusername.php.

<script type="text/javascript"> 
$(document).ready(function() { 
$('#feedback').load('testusername.php').show(); 
$('#username_input').keyup(function() { 
$.post('testusername.php', { username:form.username.value }, 
function(result) { 
$('#feedback').html(result).show(); 
}); 
}); 
}); 
</script> 

<form name='form'> 
<fieldset> 
<legend>Test Form</legend> 
Username: <br /><input type='text' id='username_input' name='username'></input> 
</fieldset> 
</form> 
<div id = "feedback"></div> 

testusername.php является:

<?php 
include 'functions2.php'; 
?> 
<?php 
$username = mysql_real_escape_string($_POST['username']); 
$query1a = mysql_query("SELECT * FROM users WHERE username='$username'"); 
$count = mysql_num_rows($query1a); 
if ($count==0) 
{ 
echo "Available"; 
} 
else { 
echo "Username exists"; 
} 
?> 
+1

Не используйте функции 'mysql_ *'! Они устарели, и вместо этого вы должны использовать PDO. Кроме того, в стиле стиля используйте 'SELECT EXISTS ...' для проверки этого типа. – Hammerite

ответ

1

Этот скрипт должен работать, чтобы справиться с вашей стороны клиента часть, Если у вас есть JQuery загружены на ваш PAFE правильно.

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#username_input').keyup(function() { 
    $.post('testusername.php', { username: $(this).val() },function(result){ 
     $('#feedback').html(result).show(); 
    }); 
    }); 
}); 
</script> 

Для серверной стороны не используйте * в запросе. Вы можете использовать что-то вроде SELECT 1 FROM .... Также вы можете убедиться, что не станете жертвой SQL Injection.

+0

Спасибо. Работала отлично. – stevieD

+0

@ user1057194: Рад, что это сработало для вас – Shyju

Смежные вопросы