сделать запрос, например, имя пользователя и вызвать модальное скрытие - Ajax & Jquery - PullRequest
0 голосов
/ 22 мая 2019

Как я могу запустить модальное скрытие после того, как ajax успешно получит данные с сервера. сейчас моя проблема заключается в том, что модальное окно не закрывается даже после того, как я сделаю запрос на стороне сервера, возможно, мой ajax-вызов неправильный, но я попробовал этот код, и он даже не работает, см. мой код ниже.

вот значение

<textarea id="scanned-QR" name="search"></textarea>

вот модал

    <!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
      </div>
      <div class="modal-body">
        ...
      </div>
    </div>
  </div>
</div>

вот значение var, которое я извлекаю из значения textarea

var query = $('#scanned-QR').val();
    fetch_customer_data(query);


$(document).on('keyup', '#scanned-QR', function(){
      var query = $(this).val();
      fetch_customer_data(query);
    });

и вот мой вызов ajax

    function fetch_customer_data(query = '') 
    {

      $.ajax({
        url:"select.php",
        method: 'GET',
        data:{query:query},
        dataType: 'json',
        success:function(data) {
            $("#exampleModal").removeClass("in");
            $(".modal-backdrop").remove();
            $('body').removeClass('modal-open');
            $('body').css('padding-right', '');
            $("#exampleModal").hide();
        },
        error:function(err){
            console.log(err);
        }
      });
    }

, поэтому вывод: после I keyup, тогда значение textarea будет сравниваться со значением базы данных, если оно равно LIKE или тем же значением, а затем, если это то же значение. Успех ajax должен выполнить следующие строки.

наконец, моя база данных подключается и мой запрос на выбор

select.php

<?php
  ini_set('display_errors', 1);
  ini_set('display_startup_errors', 1);
  error_reporting(E_ALL);

  $link = mysqli_connect("localhost","root","");
  mysqli_select_db($link, "test");

  $query = $_GET['query'];

  $res = mysqli_query($link,"SELECT * FROM admin WHERE username LIKE '$admin%' ");

  ?>

1 Ответ

1 голос
/ 22 мая 2019

Есть две ошибки:

1) заменить $('#exampleModal').hide(); на $('#exampleModalLong').hide();

2) вы не возвращаете json из select.php

В select.php добавить это

if (mysqli_num_rows($res) > 0) {
    $respose = array('status'=>'1');//1 for success
    echo json_encode($respose );        
} else {
    $respose = array('status'=>'0');//0 for fail
    echo json_encode($respose );        
}
mysqli_close($link);

В Ajax: добавить это

success:function(data) {
   if(data.status == '1'){
       $("#exampleModalLong").removeClass("in");
       $(".modal-backdrop").remove();
       $('body').removeClass('modal-open');
       $('body').css('padding-right', '');
       $("#exampleModalLong").hide();
   }
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...