【发布时间】:2025-12-15 20:55:01
【问题描述】:
我有一个tests.php 网页,它使用在线服务器上的mysql 数据库中的数据成功创建并填充了一个html 表。接下来我想通过添加 html select 来限制 sql 查询返回的行数,使网页具有交互性。我添加了 html 选择代码并修改了我的 sql 查询以使用 LIMIT 变量。我遇到的问题是如何在选择下拉列表更改时使查询运行。我假设需要调用某种页面刷新,但不确定如何去做。例如,我是否需要将 html 包含为 from 并有一个提交按钮才能使其工作?这不是我想要的,理想情况下用户按下 html select 然后页面刷新或重新运行 sql 数据库查询。
请善待这是我编写的第一个 php 代码。
我的选择代码
<select name="limit" id="limit">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
php代码
</body>
</html>
<?php
$limit = 10;
if(isset($_POST["limit"])) $limit = $_POST["limit"];
$con=mysqli_connect("localhost","user","password","database");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM TableName WHERE Region='Home' ORDER BY TeamName ASC LIMIT $limit");
echo "<table class='sample' style='width:50%'>
<tr>
<th>Team Name</th>
<th># Players</th>
<th>Venue</th>
<th>Date</th>
<th>Score</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['TeamName'] . "</td>";
echo "<td>" . $row['NumPlayers'] . "</td>";
echo "<td>" . $row['Venue'] . "</td>";
echo "<td>" . $row['Date'] . "</td>";
echo "<td>" . $row['Score'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
更新
我想我可能有一个使用 javascipt 的更简单的解决方案,尽管它不能正常工作。
使用javascript函数:
window.location.reload(true);
并更改我的 html 选择
<select onchange="refresh.call()">
但是,当页面重新加载时,它使用输入的 $limit 值
$limit =10;
而不是选择值。
页面刷新正在工作,但有没有办法以某种方式注入 html 选择值?
【问题讨论】:
-
是的,您需要一个
<form>和一个提交按钮。除非你用 AJAX 来做蚂蚁!但我会先选择<form>机制 -
更改您的选择框,使用 Ajax 并调用其他 php 文件,该文件将运行您的查询并返回数据结果
-
@Pardeep 它在哪里提到错误消息?问题显然是因为 OP 不知道该怎么做,而不是因为他们有特定的错误。
-
@manny 对于必须问“我需要表单”的人来说,第一次尝试直接跳入 AJAX 可能是一步或两步