Очистить поля в Live Search? - PullRequest
0 голосов
/ 03 марта 2020

Я использую файлы php + html (с Ajax), где я отображаю содержимое MySQL на веб-странице. index.php - это место, где я отображаю содержимое, а оно извлекает содержимое из fetch.php. Я следовал учебному пособию по этой ссылке: https://www.youtube.com/watch?v=wCsPAquMNVw

Проблема, с которой я сталкиваюсь, заключается в том, что когда я что-то печатаю в поиске, отображается значение, если оно содержится в sql table, и если значение не содержится в sql table, будет вызван "Data not found";. Однако если в строке поиска ничего не введено, результаты поиска не удаляются, а вместо этого отображаются найденные данные. Как очистить результаты поиска, если в строке поиска ничего не напечатано. Здесь, в коде, что мне набирать, если if (txt == '')?

Index. php

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>LiveData</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
 </head>
 <body>
  <div class="container">
   <br />
   <h2 align="center">Live Data Search</h2><br />
   <div class="form-group">
    <div class="input-group">
     <span class="input-group-addon">Search</span>
     <input type="text" name="search_text" id="search_text" placeholder="Search by ID" class="form-control" />
    </div>
   </div>
   <br />
   <div id="result"></div>
  </div>
 </body>
</html>


<script>
$(document).ready(function(){
    $('#search_text').keyup(function(){
        var txt = $(this).val();
        if(txt != '')
        {
            $.ajax({
                url:"fetch.php",
                method: "post",
                data: {search:txt},
                dataType: "text",
                success: function(data)
                {
                    $('#result').html(data);
                }
            });
        }
    });
});
</script>

fetch. php

<?php
//fetch.php
$connect = mysqli_connect("localhost", "id12", "", "id127");
$output = '';
$sql = "SELECT * FROM Datas WHERE ID LIKE '%" .$_POST["search"]."%'";
$result = mysqli_query($connect, $sql);

if(mysqli_num_rows($result) > 0)
{
 $output .= '<h4 align = "center">Search Result</h4>';
 $output .= '<div class="table-responsive">
                <table class = "table table bordered">
                   <tr>
                        <th>ID</th>
                        <th>Name</th>
                    </tr>';

    while($row = mysqli_fetch_array($result))
    {
        $output .= '
                <tr>
                    <td>'.$row["ID"].'</td>
                    <td>'.$row["Name"].'</td>
                </tr>
            ';
    }
    echo $output;

}
else
{
    echo "Data not found";
}

?>

1 Ответ

0 голосов
/ 03 марта 2020

Кажется, проблема в том, что вы не проверяете, что выборка на самом деле. php на самом деле возвращает, вы просто показываете возвращенные значения.

Если результата нет, я бы просто возвратил false вместо строки и отметьте это в javascript, например:

if(returnValue === true) {
 ...
}else{
   $('#result').html("Nothing to show yet.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...