2012-04-29 17 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を使うべきです。また、スタイルの点で、 '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

関連する問題