映射下拉列表2中的值取决于通过php mysql在dropdwon 1中选择的值

映射下拉列表2中的值取决于通过php mysql在dropdwon 1中选择的值,php,mysql,Php,Mysql,我是php和mysql的新手。 我有两个dropdwon's。dropdwon中的值是通过mysql实现的。但现在我无法根据在第一个下拉列表中选择的值获取第二个下拉列表中的值。 这是我迄今为止尝试过的代码 请帮忙 多谢各位 <html> <head><title>Sheet</title></head> <body> <h2 align="center">SKU Selection</h2> <

我是php和mysql的新手。 我有两个dropdwon's。dropdwon中的值是通过mysql实现的。但现在我无法根据在第一个下拉列表中选择的值获取第二个下拉列表中的值。 这是我迄今为止尝试过的代码

请帮忙

多谢各位

<html>
<head><title>Sheet</title></head>
<body>
<h2 align="center">SKU Selection</h2>
<?php 
$conn=mysqli_connect('localhost','root','');
$db="sample";
mysqli_select_db($conn,$db);
$sql="SELECT DISTINCT(Site) FROM `bom`";
$result=mysqli_query($conn,$sql);
echo "Site Name :";
echo "<select name='Site'>";
echo "<option value='0'>Select Site</option>";
while($row=mysqli_fetch_array($result))
{
echo "<option value='".$row['Site']."'>".$row['Site']."</option>";
}
echo "</select>";

$sql1="SELECT BOM Desc FROM `bom` where Site= ";
$result1=mysqli_query($conn,$sql1);
 echo "<br>";
echo "SKU :";
echo "<select name='SKU'>";
while($row1=mysqli_fetch_array($result1))
{
echo "<option value='".$row1['BOM Desc']."'>".$row1['BOM Desc']."</option>";
}
echo "</select>";

?>
</body>
</html>

床单
SKU选择

您的固定代码如下:

<html>
    <head><title>Sheet</title></head>
    <body>
        <h2 align="center">SKU Selection</h2>
        <?php
        $conn = mysqli_connect('localhost', 'root', '');
        $db = "sample";
        mysqli_select_db($conn, $db);
        $sql = "SELECT DISTINCT(Site) FROM `bom`";
        $result = mysqli_query($conn, $sql)  or die(mysqli_error($conn)); // add error show info
        echo "Site Name :";
        echo "<select name='Site'>";
        echo "<option value='0'>Select Site</option>";
        while ($row = mysqli_fetch_array($result)) {
            echo "<option value='" . $row['Site'] . "'>" . $row['Site'] . "</option>";
        }
        echo "</select>";

        $sql1 = "SELECT BOM Desc FROM `bom` where Site IS NULL "; // change the for null site
        $result1 = mysqli_query($conn, $sql1) or die(mysqli_error($conn)); // add error show info
        echo "<br>";
        echo "SKU :";
        echo "<select name='SKU'>";
        while ($row1 = mysqli_fetch_array($result1)) {
            echo "<option value='" . $row1['BOM Desc'] . "'>" . $row1['BOM Desc'] . "</option>";
        }
        echo "</select>";
        ?>
    </body>
</html>

床单
SKU选择
若您需要在第二个select上加载,php就不能处理这个问题,因为您必须给用户时间来检查第一个select

我认为更好的方法是使用Ajax request for second:

我建议在selected这两个子句中都使用以显示所选内容。 然后,在第一次添加on change事件以启动页面刷新,以便:

  • 所选条目被识别为已选条目
  • 可以根据第一个下拉列表中的选定条目筛选第二个下拉列表的SQL
第一次选择应如下所示:

<select onChange='if(options[selectedIndex].value) { location=options[selectedIndex].value;}' size='1'>
<option value='?site=Plant1'>Plant ONE</option>
<option value='?site=Plant2' selected>Plant 2</option>
</select>

植物一
工厂2

当选择Plant 2时,页面将使用包含参数&site=Plant2的URL刷新,您可以在变量$\u REQUEST['site']中读取该参数,该变量将用于第二次SQL查询

“从
BOM
where site=“;”中选择BOM描述?有语法错误。为什么site=null?问题出在哪里?我不知道在哪里编码。这里是我想从DropdOn 1中获取所选值的位置。请注意,DISTINCT不是一个函数,相关的下拉列表被广泛讨论,谢谢!我来检查一下。