在同样的情况下,如何从第一个选项框发送值,然后在第二个选项框查询的where子句中使用该值?
即。我选择一个客户端,然后第二个选择框将只显示与该客户端相关的选项。
理想情况下,这将是一个流畅的单页
Client Selection:
<?php //OPEN DROP DOWN BOX
include("../login/dbinfo.inc.php");
$comm=@mysql_connect(localhost,$username,$password);
$rs=@mysql_select_db($database) or die( "Unable to select database");
$sql= "SELECT DISTINCT ClientCode, ClientName FROM tbl_client ORDER BY ClientCode";
$result = mysql_query($sql);
echo "<select name='ClientCode'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['ClientCode'] ."'>" . $row['ClientName'] ."</option>;
}
echo "</select><br>"; //CLOSE DROP DOWN BOX
?><br>
Vessel Selection:
<?php //OPEN DROP DOWN BOX
$client = $_GET["$client"];//assign client code from first drop down to this value & use in query 'WHERE' clause
include("../login/dbinfo.inc.php");
$comm=@mysql_connect(localhost,$username,$password);
$rs=@mysql_select_db($database) or die( "Unable to select database");
$sql= "SELECT VesselName FROM tbl_import WHERE ClientCode='".$client."' ORDER BY VesselName";
$result = mysql_query($sql);
echo "<select name='VesselName'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['VesselName'] ."'>" . $row['VesselName'] ."</option>";
}
echo "</select><br>"; //CLOSE DROP DOWN BOX
?>
答案 0 :(得分:4)
PHP是一种服务器端语言 - 所有查询都在浏览器收到之前执行。如果您希望根据您的第一个选择(客户端)更改菜单内容,则您需要在选择客户端后提交表单或使用javascript填充第二个菜单后第一个菜单已收到选择。
第二个注意事项 - 您正在使用mysql
函数 - 这些函数已在PHP5中弃用并在PHP7中删除;至少考虑更新代码以使用mysqli
函数。
第三个注意事项 - 您将用户数据直接插入到查询中,这意味着您可以打开网站进行SQL注入。您可以通过mysqli
或(更好的)pdo
函数使用预准备语句和绑定参数来访问您的数据库。