【发布时间】:2020-03-03 21:28:28
【问题描述】:
我正在使用 php+html(带有 Ajax)文件,在网页中显示 MySQL 的内容。 index.php 是我在从 fetch.php 提取内容时显示内容的地方。我已经从这个链接学习了一个教程:https://www.youtube.com/watch?v=wCsPAquMNVw
我面临的一个问题是,当我在搜索中键入内容时,如果它包含在 sql 表中,则会显示一个值,如果该值不包含在 sql 表中,则会调用"Data not found";。但是,如果在搜索栏中没有输入任何内容,它不会清除搜索结果,而是显示已找到的数据。如果在搜索栏中没有输入任何内容,如何清除搜索结果。在代码中,如果 if(txt == ''),我应该输入什么?
索引.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";
}
?>
【问题讨论】:
-
为什么不为此编写正确的代码呢?这到底与MySQL有关吗?你有什么努力让它发挥作用?
-
@NicoHaase 我只需要在 fetch.php 中进行更改,如果在搜索框中没有输入任何内容,我可以清除搜索结果(输出 = '')。我不知道如何继续这个逻辑。
-
听起来不错。那么预期的结果是什么?检查您的状况的逻辑在哪里?
-
if(mysqli_num_rows($result) > 0)是我检查搜索栏中的输入是否与 mySQL 表中的任何值匹配的地方。如果是,它将显示结果,如果输入的值不在表格中,它将显示Data not found。如果在搜索栏中没有输入任何内容,如何清除搜索结果? -
我想我明白了,在代码中我必须添加
if(txt == ' '),然后清除搜索栏。对吗?