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.
Comments
-
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>