如何从我的数据库中填充的 table 进行搜索
how to search from a table populated from my database
我有一个 MySQL 数据库 table 作为用户。
我正在使用 php 和 ajax 填充 html table。(工作正常)
但是我想搜索具体的数据,也写了一些代码,但没有得到什么是我的错误。
我的index.html
<body>
<div class="container">
<h3>Product List</h3>
<div id="users-grid">
</div>
</div>
</body>
<script>
function getresult(url) {
$.ajax({
url: url,
type: "POST",
success: function(data){ $("#users-grid").html(data);}
});
}
getresult("getresult.php");
</script>
我的getresult.php(用于填充#users-grid)
<?php
include 'database.php';
$pdo = Database::connect();
$product = "";
$queryCondition = "";
?>
<form name="frmSearch" method="post" action="index.php">
<div class="search-box">
<p>
<input type="text" placeholder="Product Name" name="product" value="<?php echo $product; ?>" />
<input type="button" name="go" class="btnSearch" value="Search" onclick="getresult('getresult.php')">
<input type="reset" class="btnSearch" value="Reset" onclick="window.location='index.php'"></p>
</div>
<table class="table table-striped table-bordered" class="tablesorter">
<thead>
<tr>
<th>Date</th>
<th>Product</th>
<th>Quantity</th>
<th>Gross Price</th>
<th>Profit</th>
</tr>
</thead>
<tbody>
<?php
$queryCondition = "";
if(!empty($_POST["product"])) {
$queryCondition .= " WHERE product LIKE '" . $_POST["product"] . "%'";
}
$orderby = " ORDER BY id desc";
$sql = "SELECT * FROM users " . $queryCondition . $orderby;
foreach ($pdo->query($sql) as $row) {
echo '<tr>';
echo '<td>'. $row['date'] . '</td>';
echo '<td>'. $row['product'] . '</td>';
echo '<td>'. $row['quantity'] . '</td>';
echo '<td>'. $row['grossprice'] . '</td>';
echo '<td>'. $row['profit'] . '</td>';
echo '</tr>';
}
Database::disconnect();
?>
</tbody>
</table>
</form>
谢谢
此代码将搜索以您的搜索查询开头的任何内容
$queryCondition .= " WHERE product LIKE '" . $_POST["product"] . "%'";
我想你应该把它改成这样才能进行全面搜索
$queryCondition .= " WHERE product LIKE '%" . $_POST["product"] . "%'";
当你点击你的提交按钮时,它只会在用户点击按钮时触发,但当用户在文本上输入内容并按回车键时,它会提交你的表单,所以你必须将代码更改为这个
<form name="frmSearch" method="post" onsubmit="return getresult('getresult.php')">
<div class="search-box">
<input type="text" placeholder="Product Name" name="product" value="<?php if(isset($_POST["product"])) echo $_POST["product"]; ?>" />
<input type="button" name="go" class="btnSearch" value="Search">
<input type="reset" class="btnSearch" value="Reset" onclick="window.location='index.php'">
</div>
</form>
我更改了输入值以显示您的搜索查询。 return 部分用于停止页面重新加载
要发送 POST 数据,您必须将 ajax 代码更改为此
function getresult(url) {
$.ajax({
url: url,
type: "POST",
data: {product: $('input[name=product]').val()},
success: function(data){ $("#users-grid").html(data);}
});
return false
}
我有一个 MySQL 数据库 table 作为用户。
我正在使用 php 和 ajax 填充 html table。(工作正常)
但是我想搜索具体的数据,也写了一些代码,但没有得到什么是我的错误。
我的index.html
<body>
<div class="container">
<h3>Product List</h3>
<div id="users-grid">
</div>
</div>
</body>
<script>
function getresult(url) {
$.ajax({
url: url,
type: "POST",
success: function(data){ $("#users-grid").html(data);}
});
}
getresult("getresult.php");
</script>
我的getresult.php(用于填充#users-grid)
<?php
include 'database.php';
$pdo = Database::connect();
$product = "";
$queryCondition = "";
?>
<form name="frmSearch" method="post" action="index.php">
<div class="search-box">
<p>
<input type="text" placeholder="Product Name" name="product" value="<?php echo $product; ?>" />
<input type="button" name="go" class="btnSearch" value="Search" onclick="getresult('getresult.php')">
<input type="reset" class="btnSearch" value="Reset" onclick="window.location='index.php'"></p>
</div>
<table class="table table-striped table-bordered" class="tablesorter">
<thead>
<tr>
<th>Date</th>
<th>Product</th>
<th>Quantity</th>
<th>Gross Price</th>
<th>Profit</th>
</tr>
</thead>
<tbody>
<?php
$queryCondition = "";
if(!empty($_POST["product"])) {
$queryCondition .= " WHERE product LIKE '" . $_POST["product"] . "%'";
}
$orderby = " ORDER BY id desc";
$sql = "SELECT * FROM users " . $queryCondition . $orderby;
foreach ($pdo->query($sql) as $row) {
echo '<tr>';
echo '<td>'. $row['date'] . '</td>';
echo '<td>'. $row['product'] . '</td>';
echo '<td>'. $row['quantity'] . '</td>';
echo '<td>'. $row['grossprice'] . '</td>';
echo '<td>'. $row['profit'] . '</td>';
echo '</tr>';
}
Database::disconnect();
?>
</tbody>
</table>
</form>
谢谢
此代码将搜索以您的搜索查询开头的任何内容
$queryCondition .= " WHERE product LIKE '" . $_POST["product"] . "%'";
我想你应该把它改成这样才能进行全面搜索
$queryCondition .= " WHERE product LIKE '%" . $_POST["product"] . "%'";
当你点击你的提交按钮时,它只会在用户点击按钮时触发,但当用户在文本上输入内容并按回车键时,它会提交你的表单,所以你必须将代码更改为这个
<form name="frmSearch" method="post" onsubmit="return getresult('getresult.php')">
<div class="search-box">
<input type="text" placeholder="Product Name" name="product" value="<?php if(isset($_POST["product"])) echo $_POST["product"]; ?>" />
<input type="button" name="go" class="btnSearch" value="Search">
<input type="reset" class="btnSearch" value="Reset" onclick="window.location='index.php'">
</div>
</form>
我更改了输入值以显示您的搜索查询。 return 部分用于停止页面重新加载
要发送 POST 数据,您必须将 ajax 代码更改为此
function getresult(url) {
$.ajax({
url: url,
type: "POST",
data: {product: $('input[name=product]').val()},
success: function(data){ $("#users-grid").html(data);}
});
return false
}