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