Php 使用codeigniter和ajax检查数据库中是否存在用户名函数

Php 使用codeigniter和ajax检查数据库中是否存在用户名函数,php,jquery,ajax,codeigniter,codeigniter-3,Php,Jquery,Ajax,Codeigniter,Codeigniter 3,如何使用ajax和CodeIgniter检查我的数据库中是否有用户名?我设法创建了一个函数,没有空字段,也没有无效的电子邮件。现在我唯一不能完成的功能是在数据库中存在用户名 功能:当一些人试图创建用户名时,我希望ajax向我显示一条消息,并且输入的用户名已经存在于系统中 功能注册新用户{ var frstname=document.getElementById'first_name'。值; var lstname=document.getElementById'last_name'。值; va

如何使用ajax和CodeIgniter检查我的数据库中是否有用户名?我设法创建了一个函数,没有空字段,也没有无效的电子邮件。现在我唯一不能完成的功能是在数据库中存在用户名

功能:当一些人试图创建用户名时,我希望ajax向我显示一条消息,并且输入的用户名已经存在于系统中

功能注册新用户{ var frstname=document.getElementById'first_name'。值; var lstname=document.getElementById'last_name'。值; var uemail=document.getElementById'user_email'。值; var uname=document.getElementById'user\u name'。值; var upasswd=document.getElementById'user\u password'。值; 如果frstname==| | lstname==| | uemail==| | uname==| | upasswd=={ 警告“所有字段均为必填字段”; $'add_new_user_mod'。模式'hide'; 重定向“管理员/欢迎/用户”; }
如果uemail.indexOf'@'在前端和后端都进行验证是明智的,而我反对从用户体验的角度使用警报

考虑到这一点,我将实现表单验证,这将解决两个问题:后端检查,因为客户端永远不可信,以及确保用户名唯一

比如说

function add_new_user() {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('name', 'Name', 'required');
    // ^ do the same for your other fields
    $this->form_validation->set_rules('username', 'Username', 'required|is_unique[users.username]'); // is_unique `table_name`.`username field`
    if (!$this->form_validation->run()) {
        echo json_encode(['status' => 'error', 'msg' => validation_errors()]);
    }
    // post stuff to database
    echo json_encode(['status' => 'success', 'msg' => '']);
}
js看起来像:

$.ajax({
    url: "<?php echo base_url() . 'index.php/admin/Welcome/add_user_new'; ?>",
    data: 'name=' + frstname + '&lastname=' + lstname + '&email=' + uemail + '&username=' + uname + '&password=' + upasswd,
    async: false,
    type: "POST",
    dataType: 'json',
    success: function (data) {
        if (data.status == 'success') {
            $('#add_new_user_mod').modal('hide');
            alert('User added successfully');
            window.location = "<?php echo base_url() . 'index.php/admin/Welcome/users'; ?>";
        } else {
            alert(data.msg);
        }
    }
});

您正在混合CI和JS。检查控制器和模型中是否已存在用户名的代码在哪里?其次,请使用中数据的正确格式Ajax@DanishAli我在任何地方都看不到…@Alex我认为这行代码重定向了'admin/Welcome/users';他可能有一个js函数用于此,否则它确实是一个混合体