почему мой ответ AJAX всегда возвращает false, используя проверку базы данных

#php #ajax #database #continuous-integration

#php #ajax #База данных #непрерывная интеграция

Вопрос:

Я хочу проверить имя пользователя в форме, доступной или недоступной для создания. Затем я использую ajax для проверки в базе данных без перефразирования страницы. Затем я создаю это, но ответ всегда возвращает false. Я пробую только контроллер с print_r, функция cek_user() может получить значение true и false. Пожалуйста, помогите, как моему ajax вернуть false или true. Спасибо раньше.

Я использую ajax и CI

вот мой contoller User.php

 public function cek_user()
{
  $username     = $this->input->post('user_name');
  $query = $this->db->query("SELECT * FROM tb_user where username='".$username."'");

if($query->num_rows() > 0)
  {
    return false;
  }
  else
  {
    return true;
  }
}

  

и это моя форма add_user.php

 <div class="form-group col-md-6">
      <div class="input-group">
          <span class="input-group-addon">@</span>
          <input id="username" name="username" type="text" class="form-control col-xs-6" placeholder="Username">
      </div>
</div>
<div id="chk_username" class="form-group col-md-6">

</div>

  

и это мой ajax-скрипт add_user.php

 $('#username').change(function(){

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

    if(username != "")
    {
    $.ajax(
        {
            type    : "POST",
            url     : "<?php echo base_url();?>user/cek_user",
            data    : { user_name:username },
            dataType: "text",
            success : function(response)
            {
                if (response == true) 
                {
                    $('#chk_username').html("<div class='btn btn-sm btn-block btn-success'>Username tersedia</div>");
                    console.log("true");
                }
                else if(response == false)
                {
                    $('#chk_username').html("<div class='btn btn-sm btn-block btn-danger'>Username tidak tersedia</div>");
                    console.log("false");
                }  
            }
        });
    }
    });
  

как получить значение true или false из этого ajax-скрипта?

Комментарии:

1. Как вы возвращаете результат cek_user() клиенту? Если вы используете, echo then true будет отображен как 1 и false будет пустой строкой. Если вы используете JSON, вам нужно использовать dataType: "json" в клиенте.

2. Какое отношение к этому имеет CI? Это инженерный процесс, он не имеет ничего общего с тем, как на самом деле работает код.

3. @Barmar Я имею в виду, что то, что вводится в имени пользователя, может быть проверено в базе данных с помощью ajax, так где же неправильный?

4. Что console.log(response) показывает?

5. Если вы возвращаете текст, вы должны сравнить со строкой: if(response == "true")