我创建了一个名为users
的数据库表,我创建了一个名为forms.php
的php文件。 forms.php
有两种形式。第一种形式是搜索,第二种形式是数据库中应该出现的记录:
<form method="post" action="search.php">
<div class="input-group has-success">
<input id="btn-input" name="search" type="text" class="form-control input-md" placeholder="Please type the ID number of the user you want to update..." />
<span class="input-group-btn">
<button class="btn btn-success btn-md" id="btn-chat" type="submit">Search</button>
</span>
</div>
</form>
</div>
<div class="col-md-6">
<form role="form">
<div class="form-group">
<label>username</label>
<input class="form-control" placeholder="Placeholder">
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control">
</div>
<div class="form-group">
<label>UserType</label>
<input class="form-control">
</div>
</form>
这是用于搜索的php脚本的第一种形式。这是我的 search.php 中的脚本:
<?php
$conn = mysqli_connect("localhost", "root", "", "asset_inventory");
if($conn === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$search = mysqli_real_escape_string($conn, $_POST['search']);
$sql = "SELECT * FROM users WHERE user_id='$search'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$id=$row['user_id'];
$name=$row['user_name'];
$pass=$row['user_pass'];
$type=$row['user_type'];
header("location: forms.php");
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
现在我想使用search.php
中提到的变量,这些变量包含要在标题forms.php
中以第二种形式显示的行。有什么建议?我陷入了困境。谢谢!
答案 0 :(得分:0)
您有两个选择:
将表单提交给相同的forms.php并处理打印文档内搜索的结果,只需遍历结果并打印所需的html
您可以使用AJAX并使用搜索查询向search.php发送请求并返回JSON结果,然后使用forms.php中的一些javascript代码来呈现结果。
答案 1 :(得分:0)
我会尽量保持我的解释/解决方案尽可能简单,因为您的代码表明您刚开始使用这些内容。
您编写了search.php来从数据库中返回数据。它做得很好。问题是,一旦掌握了数据,您就无法对其进行任何操作。我正在谈论这些代码:
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
$name=$row['user_name'];
$pass=$row['user_pass'];
$type=$row['user_type'];
}
}
else
{
echo "0 results";
}
所以你要设置$ name,$ pass和$ type变量,这就是你需要的数据。如果它找到第二个用户,它会覆盖$ name,$ pass和$ type变量,并且你的第一个用户数据会从PHP中消失(尽管它保留在数据库中,不用担心)。
一个易于理解的解决方案是更改代码的位置。您应该在while()循环中显示数据。因此,如果您将while() - 循环代码放在HTML页面中,您可以创建一个显示用户信息的表格,如下所示:
<table>
<?php
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
?>
<tr>
<td> <?php echo $name=$row['user_name']; ?> </td>
<td> <?php echo $name=$row['user_pass']; ?> </td>
<td> <?php echo $name=$row['user_type']; ?> </td>
</tr>
<?php
}
}
else
{
?>
<tr>
<td colspan="3">0 results</td>
</tr>
<?php
}
?>
</table>
其他解决方案包括功能和类,但您的代码表明您还不了解它们。我建议你尝试使用已有的知识构建页面。然后阅读有关功能。然后重建相同的页面,但为它创建一个函数。
答案 2 :(得分:0)
这是一种ajax方法。简单方便
表格页
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script>
$(function(){
$(document).on("click", "#btn-chat", function(e) {
e.preventDefault();
//Built a url to send
var info = $("#form").serialize();
$.ajax({
type: "POST",
url: "search.php",
data: info,
success: function(result){
//$('#respoondarea').load(location.href + '#respondarea');
//$("#form")[0].reset();
$('#respond').html(result);
}
});
e.preventDefault();
});
});
</script>
<form method="post" id="form" action="search.php">
<div class="input-group has-success">
<input id="btn-input" name="search" type="text" class="form-control input-md" placeholder="Please type the ID number of the user you want to update..." />
<span class="input-group-btn">
<button class="btn btn-success btn-md" id="btn-chat" type="submit">Search</button>
</span>
</div>
</form>
<div id="respond"></div>
搜索PHP页面
<?php
$conn = mysqli_connect("localhost", "root", "", "asset_inventory");
if($conn === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$search = $_POST['search'];
//$query_user = mysqli_query($conn,"SELECT * FROM users WHERE user_id='$search'");
$query_user = mysqli_query($conn,"SELECT * FROM users WHERE user_id LIKE '%$search%' ");
$row_user = mysqli_fetch_assoc($query_user);
$totalRows_user = mysqli_num_rows($query_user);
?>
<table class="table">
<thead>
<tr>
<th>Username</th><th>User pass</th><th>User type</th>
</tr>
</thead>
<tbody>
<?php do { ?>
<tr>
<td><?php echo $row_user['user_name']; ?></td>
<td><?php echo $row_user['user_pass']; ?></td>
<td><?php echo $row_user['user_type']; ?></td>
</tr>
<?php } while ($row_user = mysqli_fetch_assoc($query_user)); ?>
</tbody>
</table>
<?php if ($totalRows_user == 0) { // Show if record empty ?>
<div class="alert alert-info" role="alert"> No record found </div>
<?php } // Show if recordset empty ?>
希望能帮助