проверка имени пользователя с Ajax не выполняется - PullRequest
1 голос
/ 04 августа 2020

Я использую Codeigniter 4 и ajax, чтобы проверить, существует ли имя пользователя. Это не удается.

Вот код, который я использовал для проверки имени пользователя. Я хотел, чтобы всплывающее окно отображалось ( доступно или недоступно ) под полем ввода, когда пользователь вводит имя пользователя

AJAX

<script>
        $(document).ready(function() {
            $("#unameAkun").keyup(function() {
                var username = $(this).val().trim();
                if (username != '') {
                    $.ajax({
                        url: '<?php echo base_url('Dashboard_db/cek_username') ?>',
                        type: 'post',
                        data: {
                            username: username
                        },
                        success: function(response) {
                            $('#username_result').html(response);
                        }
                    });
                } else {
                    $("#username_result").html("");
                }
            });
        });
    </script>

МОДЕЛЬ

public function cek_username($email_akun){
    return $this->db->table('tabel_akun')->where(array('email_akun'=>$email_akun))->get()->getRowArray();}

КОНТРОЛЛЕР

public function cek_username() {
    if (isset($_POST['unameAkun'])) {
        $username = $_POST['unameAkun'];
        $results = $this->Akun_->cek_username($username);
        if ($results>0) {
            $response = "<span style='color: red;'>Not Available.</span>";
        } else {
            $response = "<span style='color: green;'>Available.</span>";
        }
    }
    echo $response;
}

1 Ответ

0 голосов
/ 04 августа 2020

прямо сейчас вы запрашиваете электронную почту вместо имени пользователя, измените свою модель на что-то вроде:

public function cek_username($username){
    return $this->db ->table('tabel_akun')
                     ->where(array('unameAkun'=>$username))
                     ->get()
                     ->countAllResults;
}

как вы видите, я также изменил getRowArray () на countAllResults (), как вы хотите чтобы вернуть, как часто существует имя пользователя.

Кроме того, я бы использовал в javascript части change вместо keyup, поэтому он проверяет только, когда у вас есть полное имя пользователя (событие откладывается до элемент теряет фокус), а не для каждой буквы, но это необязательно, как хотите.

...