0

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();
         }

}
}
});
}



}
4

3 に答える 3

0

PHPコードが正しい値を返すと仮定すると...成功コールバックで結果をトリムするか、jsonを返します。

if($.trim(response) == 1)
于 2013-09-13T19:04:04.060 に答える
0

これを試してみてください

function check_username_availability($username){
    $query = $this->db->query("SELECT username FROM users WHERE username = '".$username."'");
    $this->db->limit(1);
    $num = $query->num_rows();

    echo $num; //echo the value instead return

 }
于 2013-09-13T19:04:09.093 に答える
0

あなたのajax呼び出しが問題だと思います。投稿するデータはオブジェクトである必要があります。jqueryでやってみてください。その簡単:

var url = 'addpatient/insert';
var data = {username:'username'};
$.post(url, data, function(result){
   console.log(result);
   ..your success function..
});
于 2013-09-13T19:06:20.670 に答える