Php 在实时搜索中清除字段?

Php 在实时搜索中清除字段?,php,html,mysql,ajax,Php,Html,Mysql,Ajax,我使用php+html(带有Ajax)文件在网页中显示MySQL的内容。index.php是我显示内容的地方,同时它从fetch.php中提取内容。我遵循了此链接中的教程: 我面临的问题是,当我在搜索中键入某个内容时,如果该值包含在sql表中,则会显示该值;如果该值不包含在sql表中,则会显示一个“未找到数据”将被调用。但是,如果搜索栏中没有键入任何内容,则不会清除搜索结果,而是显示已找到的数据。如果搜索栏中未键入任何内容,如何清除搜索结果。在代码中,如果(txt='',我应该键入什么 Inde

我使用php+html(带有Ajax)文件在网页中显示MySQL的内容。
index.php
是我显示内容的地方,同时它从
fetch.php
中提取内容。我遵循了此链接中的教程:

我面临的问题是,当我在搜索中键入某个内容时,如果该值包含在sql表中,则会显示该值;如果该值不包含在sql表中,则会显示一个
“未找到数据”将被调用。但是,如果搜索栏中没有键入任何内容,则不会清除搜索结果,而是显示已找到的数据。如果搜索栏中未键入任何内容,如何清除搜索结果。在代码中,如果(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>

实时数据

实时数据搜索
搜寻
$(文档).ready(函数(){ $(“#搜索_文本”).keyup(函数(){ var txt=$(this.val(); 如果(txt!='') { $.ajax({ url:“fetch.php”, 方法:“张贴”, 数据:{search:txt}, 数据类型:“文本”, 成功:功能(数据) { $('#result').html(数据); } }); } }); });
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";
}

?>

问题似乎在于,您没有检查fetch.php实际返回的内容,而是显示返回的值

如果没有结果,我只需返回
false
而不是string,并在javascript中进行检查,如:

if(returnValue === true) {
 ...
}else{
   $('#result').html("Nothing to show yet.");
}

为什么不为此编写适当的代码呢?这到底与MySQL有关吗?你试过让它工作吗?@NicoHaase我只需要在fetch.php中进行更改,如果搜索框中没有键入任何内容,我就可以清除搜索结果(output='')。我不知道如何继续这个逻辑。听起来不错。那么预期的结果是什么?检查您的条件的逻辑在哪里?
if(mysqli_num_rows($result)>0)
用于检查搜索栏中的输入是否与mySQL表中的任何值匹配。如果是,它将显示结果,如果输入的值不在表中,它将显示
未找到的数据
。如果在搜索栏中没有输入任何内容,如何清除搜索结果?我想我得到了它,在代码中我必须添加
if(txt='')
,然后清除搜索栏。对吗?