CodeIgniter を使用して送信ボタンを押す前でも、ユーザー名が存在するかどうかを確認しようとしています。これが私の見解のJavascriptです。
<script type="text/javascript" src="../assets/js/jquery.min.js"></script>
<script type="text/javascript"><!--\
$(document).ready(function(){
$('#username').keyup(username_check);
});
function username_check(){
var username = $('#username').val();
if(username == "" || username.length < 4){
$('#username').css('border', '3px #CCC solid');
$('#tick').hide();
}else{
jQuery.ajax({
type: "POST",
url: "addpatient/insert",
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();
}
}
});
}
}
</script>
フォームの一部を次に示します。
<form method="post" action="addpatient/insert">
<table id='addpatient'>
<tr>
<td width=100> Username:
<td width=150> <input type='text' id='username' name='username'>
</tr> .....
これがコントローラーの一部です(機能insert
)
$patient['username'] = strtolower($this->input->post('username'));
$response = $this->user->check_username($patient['username']);
モデル内の関数は次のとおりです。
function check_username_availability($username){
$query = $this->db->query("SELECT username FROM users WHERE username = '".$username."'");
$this->db->limit(1);
$num = $query->num_rows();
return $num;
}
そのようなユーザー名がデータベースに既に存在していても、結果は常に有効です。私の問題はtype: "POST"
javascriptにあると思います。そして、取得された ( で取得されたmodel
) 行数を javascript に取得するにはどうすればよいでしょうか? ここで自分のコードをパタパタしました。この作業を手伝ってください。CodeIgniter フレームワークの使用は初めてです。ありがとうございました!
編集
$(document).ready(function(){
$('#username').keyup(username_check);
});
function username_check(){
var username = $('#username').val();
if(username == "" || username.length < 4){
$('#username').css('border', '3px #CCC solid');
$('#tick').hide();
}else{
var url = 'addpatient/insert';
var data = {username:'username'};
$.post(url, data, function(result){
console.log(result);
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();
}
}
}
});
}
}