所以我试图根据组合框中的选定项目对信息进行排序。我熟悉PHP的部分但仍在学习。
我能够使用我的数据库中的'Brand_Name'列信息填充组合框。
这是我目前的输出:
虽然它没有过滤,但它只列出了数据库中的所有项目
见下面的代码:
<?php
$hostname = "localhost";
$username = "root";
$password = "root";
$databaseName = "Clients";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$queryDropdown = "SELECT * FROM `Brands` WHERE 1";
$result = mysqli_query($connect, $queryDropdown);
$queryGrid = "SELECT * FROM `Brands` ";
$SearchResult = mysqli_query($connect, $queryGrid);
?>
<html>
<head>
<title>PokerPass</title>
<link rel="stylesheet" type="text/css" href="styles/Main.css">
<link rel="stylesheet" type="text/css" href="styles/ComboBox.css">
<link rel="stylesheet" type="text/css" href="styles/TableGrid.css">
</head>
<body >
<div id="Container" class="Container">
<div id="Header" class="Header">
</div>
<div id="Body" class="Body">
<div name="start" id="Filter_Bar" class="Filter_Bar">
<select class="soflow" id="soflow" Size="1">
<?php while($row1 = mysqli_fetch_array($result)):; ?>
<option><?php echo $row1[1]; ?></option>
<?php endwhile; ?>
</select>
<button class="Submit" ><span><strong>Search<strong></span></button>
<!--<input class="Submit" type="submit" name="search" value="Search </span>">-->
</div>
<div id="Data_Grid" class="Data_Grid">
<table>
<tr>
<th>Server ID</th>
<th>Client</th>
<th>Operator</th>
<th>Username</th>
<th>Password</th>
</tr>
<?php while ($row = mysqli_fetch_array($SearchResult)):; ?>
<tr>
<td><?php echo $row['ServerID']; ?></td>
<td><?php echo $row['Brand_Name']; ?></td>
<td><?php echo $row['Operator_Name']; ?></td>
<td><?php echo $row['Username']; ?></td>
<td><?php echo $row['Password']; ?></td>
</tr>
<?php endwhile; ?>
</table>
</div>
</div>
<div id="Footer" class="Footer">
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
在您的HTML代码中,您的select
元素没有name
属性,因此您无法在提交表单时获取其值。此外,您的option
元素没有value
属性,因此即使表单已提交且select
有名称,该值也将为空。 See this guide
您的select
元素不在form
标记内,这意味着当按下该按钮时,该页面不知道该去哪里。您需要一个表单来指定操作(您要访问的URL)和方法(发布/获取)。 See this guide
最后,如果您希望PHP知道您的查询是什么,您需要从GET or POST parameters获取它。获得变量后,可以使SQL查询动态化 - 但要小心而不是引入SQL injection vulnerability - 仔细验证用户输入(例如,只允许数字作为您的值)选择列表)和/或使用参数化查询。
如果您希望在更改下拉列表时自动提交表单,则可以use a quick JS attribute to auto-submit the form。
答案 1 :(得分:0)
对于您的示例,您需要将过滤器值应用于查询 您需要根据您的选择构建新查询。
“SELECT * FROM Brands WHERE Client =”+ $ selectedClient;
编辑: 这是关于如何将js变量传递给php的参考: How to pass JavaScript variables to PHP?