【问题标题】:How to populate a child drop down menu from parent selection PHP如何从父选择 PHP 填充子下拉菜单
【发布时间】:2014-07-21 14:19:35
【问题描述】:

如何仅使用 PHP 从父下拉列表中填充静态页面上的子下拉选择。例如,在您选择您居住的州后,让一个子下拉列表填充县,或者在我的情况下填充制造商之后的系列。

编辑:有没有办法在没有 js 的情况下做到这一点?

<?php
$man = mysqli_query($con,"SELECT DISTINCT manufacturer FROM inventory.manufacturer WHERE manufacturer!=\"\" ORDER BY manufacturer;");               
echo "<select name=\"manufacturerS\">
<option value=\"\">Select</option>";
while($row = mysqli_fetch_array($man)) {
    echo "<option value=\"".$row['manufacturer']."\">".$row['manufacturer']."</option>";
}   
echo "</td>
<td>";

if(isset($_POST['manufacturerS'])){
$ser = mysqli_query($con,"SELECT DISTINCT series, manufacturer FROM inventory.audit WHERE series!=\"\" AND manufacturer='".$_POST['manufacturerS']."' ORDER BY series;");               
echo "<select name=\"seriesS\">
<option value=\"\">Select</option>";
while($row = mysqli_fetch_array($ser)) {
    echo "<option value=\"".$row['series']."\">".$row['series']."</option>";
}   
    echo "</td>
    <td>";      
}

【问题讨论】:

  • 我猜想使用动态链接下拉菜单
  • 那里没有javascript标签,是不是意味着你想要一个没有js的解决方案?

标签: php mysql forms validation drop-down-menu


【解决方案1】:

你需要client-side判断何时选择了manufacturerS select,那么你可以使用纯javascript

<form id="manufacturerF" method="POST">
<select name="manufacturerS" onchange="document.getElementById('manufacturerF').submit();">
<?php  
    $man = mysqli_query($con, "SELECT DISTINCT manufacturer 
    FROM inventory.manufacturer 
    WHERE manufacturer!=\"\" 
    ORDER BY manufacturer;");

    while ($row = mysqli_fetch_array($man)) {
        echo '<option value="'.$row['manufacturer'].'>'.$row['manufacturer'].'</option>';
    } 
?>
</select>
</form>


<?php
    if(isset($_POST['manufacturerS']) && !empty($_POST['manufacturerS'])){  
        echo '<select name="seriesS">';

        $ser = mysqli_query($con,"SELECT DISTINCT series, manufacturer 
        FROM inventory.audit 
        WHERE series!=\"\" 
        AND manufacturer='".$_POST['manufacturerS']."' 
        ORDER BY series;");

        while ($row = mysqli_fetch_array($ser)) {
            echo '<option value="'.$row['series'].'">'.$row['series'].'</option>';
        }   

        echo '</select>';   
    }
?>

我建议您使用JQuery,这样就不需要&lt;form&gt; 并重新加载您的页面。 正确的想法是使用JQUERY 来检测何时选择了select1,然后使用AJAX 填充select2

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2010-10-06
    • 2012-02-23
    • 2013-11-01
    • 1970-01-01
    • 2014-12-11
    • 2022-11-17
    • 1970-01-01
    相关资源
    最近更新 更多