PHP $_POST 不适用于 2 个下拉菜单


PHP $_POST not working with 2 dropdown menus

我有一个显示第二个下拉菜单值的小脚本。仅当我发布值时,菜单的第一项才会显示给 PHP 脚本。怎么了?

.HTML:

<head>
    <script type='text/javascript'>//<![CDATA[ 
    function fctCheck(food) {
            var elems = document.getElementsByName("subselector");
            for (var i = 0; i < elems.length; i++) {
                elems.item(i).style.display = "none";
            }
            document.getElementById(food).style.display = "block";
        }//]]>  
    </script>
</head>
<body>
    <form action="test.php" method="post">
        <select id="food" onchange="fctCheck(this.value);">
            <option value="keuze">Choose option</option> 
            <option value="Alanya Gazipasa Airport (GZP)">Alanya Gazipasa Airport (GZP)</option>
            <option value="Antalya Airport (AYT)">Antalya Airport (AYT)</option>
        </select><br>
        <select id="keuze" name="subselector" disabled style="width: 120px;">
            <option value="vanilla">Choose option</option>
        </select>  
        <select id="Alanya Gazipasa Airport (GZP)" name="subselector" style="display:none; width: 120px;">
            <option>Alanya Avsallar</option>
            <option>Alanya Cikcilli</option>
            <option>Alanya Demirtas</option>
            <option>Alanya Kargijak</option>
            <option>Alanya Kestel</option>
        </select>  
        <select id="Antalya Airport (AYT)" name="subselector" style="display:none; width: 120px;">
            <option>Alanya Avsallar</option>
            <option>Alanya Cikcilli</option>
            <option>Alanya Demirtas</option>
            <option>Alanya Incekum</option>
        </select><br>
        <input type="submit">
    </form>
</body>

.PHP:

<?php
$value = $_POST['subselector'];
echo "$value";
?>

不能有两个同名的表单元素。一个会写另一个。您需要为每个它们提供一个唯一的名称,然后在 PHP 中通过该唯一名称访问它们。

无需更改名称,因为您想要名称选择器,您必须禁用不相关的选择框,因为如果我隐藏该元素,但它被执行没有显示使用

试试这个它工作正常

     <script type='text/javascript'>//<![CDATA[ 
           function fctCheck(food) {
           var elems = document.getElementsByName("subselector");
           for (var i = 0; i < elems.length; i++) {
               elems.item(i).style.display = "none";
               elems.item(i).disabled = true;
           }
          document.getElementById(food).style.display = "block";
          document.getElementById(food).disabled = false;
          }
     </script>