Check if username exists in database with codeigniter and ajax

19,222

Solution 1

Try this

In Ajax

function check_if_exists() {

var username = $("#username").val();

$.ajax(
    {
        type:"post",
        url: "<?php echo base_url(); ?>index.php/files/filename_exists",
        data:{ username:username},
        success:function(response)
        {
            if (response == true) 
            {
                $('#msg').html('<span style="color: green;">'+msg+"</span>");
            }
            else 
            {
                $('#msg').html('<span style="color:red;">Value does not exist</span>');
            }  
        }
    });
}

In Controller

function filename_exists()
{
    $username = $this->input->post('username');
    $exists = $this->User_model->filename_exists($username);

    $count = count($exists);
    // echo $count 

    if (empty($count)) {
        return true;
    } else {
        return false;
    }
}

In Model

function filename_exists($username)
{
    $this->db->select('*'); 
    $this->db->from('users');
    $this->db->where('username', $username);
    $query = $this->db->get();
    $result = $query->result_array();
    return $result
}

Solution 2

If you are just trying to see if the user already exists, there is no reason to query with the get() function. just do the count_all_results() it will return a number if the user is found, 0 if not.

function filename_exists($username) {
  $this->db->where('username', $username);
  return $this->db->count_all_results('users'); 
}

All this will do is return a number greater than zero if the username exists in your db.

Share:
19,222
user
Author by

user

List item

Updated on June 05, 2022

Comments

  • user
    user almost 2 years

    Can anyone help me check if a username is in my database using ajax and code igniter? I can't use the form_validation method as I have modal windows which interfere with the checking.

    Currently my controller looks like:

     function filename_exists(){
            $username = $this->input->post('username');
            $data['exists'] = $this->User_model->filename_exists($username);
        }
    

    My Model:

     function filename_exists($username)
     {
    
         $this->db->select('*'); 
         $this->db->from('users');
         $this->db->where('username', $username);
         $query = $this->db->get();
         if ($query->num_rows() == 0) {
             return true;
         } else {
             return false;
         }
     }
    

    and my ajax post:

    function check_if_exists() {
    
         <?php $username = $this->input->post('username');
        ?>
         var username = '<?php echo $username ?>';
        var DataString=$("#form1").serialize();
         $.ajax({
         url: "<?php echo base_url(); ?>index.php/Files/filename_exists/",
         type: "post",
         data: DataString + '&username=' + username,
         success: function(response) {
    
    
                if (response == true) {
                    $('#msg').html('<span style="color: green;">'+msg+"</span>");
    
                }
                 else {
    
                    $('#msg').html('<span style="color:red;">Value does not exist</span>');
                }
    
    
             }
         });
    
    
    }
    

    UPDATE

     <form name = "form1" id = "form1" method ="post"> <!--action="<?php echo base_url()."index.php/Admin/create_user"; ?>"-->
        <?php echo validation_errors(); ?>
        <label for="userID" class = "labelForm">User ID:</label>
        <input type="text" id="userID" name="userID" class = "input2">
        <label for="first_name" class = "labelForm">First Name:</label>
        <input type="text" id="first_name" name="first_name" class = "input2">
        <label for="last_name" class = "labelForm">Last Name:</label>
        <input type="text" id="last_name" name="last_name" class = "input2">
        <label for="username" class = "labelForm">Username:</label>
        <input type="text" id="username" name="username" class = "input2" onblur="check_if_exists();">
        <label for="password" class = "labelForm">Password:</label>
        <input type="password" id="password" name="password" class = "input2" onblur="checkPasswords();">
        <label for="passconf" class = "labelForm">Password:</label>
        <input type="password" id="passconf" name="passconf" class = "input2" onblur="checkPasswords();">
        <label for="email" class = "labelForm">Email:</label>
        <input type="text" id="email" name="email" class = "input2">
      <button type="button"  id = "new_user_submit">Add New User</button>